Il PHP Parser biblioteca è stata scritta a scopo di analisi del codice.
Si legge semplicemente il codice e lo mostra come un array di albero di sintassi.
Manipolando l'array possiamo anche manipolare il codice.
Per i principianti, la documentazione viene fornita con il progetto
Cosa c'è di nuovo in questa versione:.
- parti delle stringhe encapsed ora sono rappresentati con `scalare & # x5C; nodi EncapsStringPart`. In precedenza sono stati utilizzati stringhe raw. Questo influenza il bambino `parts` di` scalare & # x5C; Encaps` e `Espr & # x5C; ShellExec`. Il cambiamento è stato fatto per consentire l'assegnazione di attributi alle parti stringa encapsed.
Cosa c'è di nuovo nella versione 2.0.0:
- parti delle stringhe encapsed sono ora rappresentati usando ` Scalar & # x5C; nodi EncapsStringPart`. In precedenza sono stati utilizzati stringhe raw. Questo influenza il bambino `parts` di` scalare & # x5C; Encaps` e `Espr & # x5C; ShellExec`. Il cambiamento è stato fatto per consentire l'assegnazione di attributi alle parti stringa encapsed.
Cosa c'è di nuovo nella versione 1.4.0 / 2.0.0-alpha1:
- Il `NameResolver` ora risolve tipo di parametro suggerimenti quando si entra / metodo / node funzione di chiusura. Come tali altri visitatori esecuzione dopo che sarà in grado di utilizzare i nomi risolti in quel punto già.
- Il caricatore automatico non è più imposta l'opzione `unserialize_callback_func` ini sulla registrazione -. Questo non è necessario e può causare problemi durante l'esecuzione di test PHPUnit con l'isolamento dei processi
Cosa c'è di nuovo nella versione 1.3.0:
- Il `NameResolver` ora risolve tipo parametro suggerimenti quando entrare nel / metodo / node funzione di chiusura. Come tali altri visitatori esecuzione dopo che sarà in grado di utilizzare i nomi risolti in quel punto già.
- Il caricatore automatico non è più imposta l'opzione `unserialize_callback_func` ini sulla registrazione -. Questo non è necessario e può causare problemi durante l'esecuzione di test PHPUnit con l'isolamento dei processi
Cosa c'è di nuovo nella versione 1.2.2:
- Il `NameResolver` ora risolve tipo parametro suggerimenti quando entrare nel / metodo / node funzione di chiusura. Come tali altri visitatori esecuzione dopo che sarà in grado di utilizzare i nomi risolti in quel punto già.
- Il caricatore automatico non è più imposta l'opzione `unserialize_callback_func` ini sulla registrazione -. Questo non è necessario e può causare problemi durante l'esecuzione di test PHPUnit con l'isolamento dei processi
Cosa c'è di nuovo nella versione 1.1.0:
- i visitatori nodo possono ora tornare `NodeTraverser :: DONT_TRAVERSE_CHILDREN `` da enterNode () `per saltare tutti i figli del nodo corrente, per tutti i visitatori.
- Dichiarare una proprietà come astratto o finale è ora un errore.
- costruttori aggiunto per i tratti e gli spazi dei nomi.
- La classe, interfaccia, tratto, di funzione, di metodo e proprietà costruttori ora supportano l'aggiunta di commenti di documentazione utilizzando il `setDocComment () metodo`.
- Aggiunto il supporto per i nomi pienamente qualificati e namespace-relativi a costruttori. non consentono più l'uso di array di componenti nome.
- Non aggiungere documentazione e test per i file di archivio di distribuzione.
Cosa c'è di nuovo nella versione 1.0.1:
- Non consentire nuove espressioni senza un nome di classe. In precedenza nuova; è stato accidentalmente considerato codice valido.
- gettone Supporto T_ONUMBER usati per HHVM.
- Aggiunta la possibilità di passare direttamente il codice per lo script php-parse.php.
- Prevenire troncamento di var_dump () Uscita nello script php-parse.php se XDebug viene utilizzato.
Cosa c'è di nuovo nella versione 1.0.0:
- Rimosso deprecate `template` e` classi TemplateLoader` .
- unserializer XML corretto per funzionare correttamente con nuovi nomi nodo namespace.
Cosa c'è di nuovo nella versione 0.9.4:
- Vi è ora un costruttore per le interfacce ( `PHPParser_Builder_Interface `).
- Una interfaccia per il traversation nodo è stato aggiunto: `PHPParser_NodeTraverserInterface`
- fissi piuttosto stampa del `espressioni include` (informazioni precedenza mancava).
- fissi & quot; indice indefinito & quot; avvisi quando si generano i gettoni previsti per un errore di sintassi.
Cosa c'è di nuovo nella versione 0.9.3:
- Aggiunto il supporto per le espressioni arbitrarie a vuoto ().
- Aggiunto il supporto per costante di matrice / string dereferencing.
- Aggiunto il supporto per le espressioni di rendimento. Questo aggiunge un nuovo tipo di espressione del rendimento, con sottonodi chiave e valore.
- Aggiunto il supporto per finalmente. Questo aggiunge un nuovo finallyStmts sottonodo al nodo TryCatch. Se non vi è alcuna clausola finally sarà nullo.
Cosa c'è di nuovo nella versione 0.9.2:
- Aggiunto Class - & # X3e; GetMethods () funzione che restituisce tutti i metodi contenuti nella matrice stmts del nodo di classe. Ciò non tiene metodi ereditati in considerazione.
- Aggiunto isPublic (), isProtected (), IsPrivate (). isAbstract (), isfinal () e isStatic () di accesso ai nodi classmethod, di proprietà e di classe. (Di proprietà e di classe, ovviamente, hanno solo le funzioni di accesso che li riguardano.)
- l'analisi fisso di nuove espressioni tra parentesi, ad esempio tornare (new Foo);.
- meccanismo di aggiunta per aggiungere attributi ai nodi nel lexer.
- fissi visitatore NameResolver per risolvere anche i nomi delle classi in blocchi catch.
Requisiti :
- PHP 5.4 o superiore
Limitazioni :
- Ancora in fase di sviluppo. Potrebbe cambiare drasticamente da una versione all'altra.
I commenti non trovato