2015-07-18 34 views
5

Come faccio a sapere il mio codice quale versione della lingua è compatibile? C'è un modo per capire qual è la versione minima del linguaggio PHP che può essere eseguita senza errori? Forse c'è qualche Checker o una funzione, metodo, classe?Verifica compatibilità versione PHP

+2

Potrebbe anche esserci una versione massima del linguaggio PHP che può essere eseguita senza errori. – hellcode

+1

Ok ma come sapere il suo compatibile? –

+0

O conosci bene il tuo codice e controllerai ogni docu di funzioni relativo alla versione di PHP o eseguirai semplicemente un controllo di sintassi su diversi server con le versioni che vuoi garantire la compatibilità. –

risposta

5

Molto probabilmente è necessario avere diverse versioni di PHP installate. Quindi è possibile verificare la compatibilità del codice con la versione PHP specificati utilizzando shell:

find . -name *.php | xargs -n1 /usr/bin/php -l 

php -l comando esegue PHP in controllo della sintassi solo in modalità. Il comando precedente controllerà ogni file PHP nel progetto di compatibilità con la versione di PHP situata in/usr/bin/php.

+0

Ora utilizzo localhost. Esiste un software per verificare se il mio codice è compatibile con qualsiasi versione? –

+0

Oppure puoi utilizzare un singolo comando: 'find. -type f -iname '* .php' -exec/usr/bin/php -l {} \; ' – fboaventura

+0

genera il primario sconosciuto o l'operatore find. -name '* .php' | xargs -n1/usr/bin/php -l funziona su mac – swaveg

5

Installare la versione di PHP che si desidera testare ed eseguire php -l file.php per verificare se il file supera il controllo del lint. Se PHP non è in grado di analizzare il file, lo dirà.

In generale, è necessario essere consapevoli di quali funzionalità sono diventate disponibili in quale versione. Ignorando PHP 5.3 con le sue numerose versioni di patch che hanno aggiunto miglioramenti significativi per un momento, questo si riduce alla conoscenza di quali funzionalità sono state introdotte con PHP 5.4, 5.5, 5.6 e 7.0 e indicando esplicitamente tale versione nel tuo composer.json.

Come suggerimento: 5.4 ha sintassi e tratti di array brevi, 5,5 ha generatori e finally, 5.6 viene fornito con le funzioni variadiche e l'argomento decompressione e 7.0 ha tipi di suggerimento e tipi di ritorno scalari. Aiuta a utilizzare un IDE che conosce queste funzionalità e ti avvisa se utilizzi qualcosa che non è supportato nella versione selezionata.

PHP viene fornito con una costante PHP_VERSION che contiene la versione corrente su cui si sta eseguendo e ha una funzione per consentire un facile confronto tra la notazione della versione come in "quale è maggiore". Ciò consentirebbe di eseguire diverse parti del codice a seconda della versione, permettendo di aggiungere livelli di compatibilità per alcune cose che ti servono se usi versioni inferiori e usando l'implementazione di PHP (di solito più veloce) quando si esegue su versioni più recenti.

Oltre a ciò, vi imbatterete sempre in problemi con le estensioni non installate. Questo non è un problema con la versione di PHP stessa. PHP ha function_exists() e method_exists() per rilevare se è possibile chiamare qualcosa prima di fare (e fallire con un errore fatale). È possibile rilevare questa condizione di errore e avere una soluzione diversa oppure informare l'utente che deve aggiungere qualcosa alla sua installazione di PHP.

Si consiglia di utilizzare Travis CI per progetti open source. Fondamentalmente si ottiene gratuitamente, e l'aggiunta di diverse versioni di PHP è come aggiungere una nuova riga nel file di configurazione di travis.yml. Offrono anche piani per archivi privati. Qualsiasi altra installazione di CI che ti offre molte versioni di PHP funzionerà anche finché eseguirai il tuo codice su tutte le versioni di PHP che intendi supportare.

Suggerimento finale: supporto Drop per PHP 5.3 e 5.4. Queste versioni sono fuori manutenzione (o lasciano solo la fase di correzione della sicurezza tra 2 mesi) e non dovrebbero essere più prese di mira.

+0

Ho lezioni scritte ora. C'è un software in grado di scansionarli e dire che sei compatibile o no al localhost? –

+0

Come ho detto: Installa PHP nella versione che vuoi controllare ed esegui il comando 'php -l' per vedere se PHP può analizzarlo. – Sven

1

https://3v4l.org/

Questo strumento online mostra l'output di codice per più di 150 diverse versioni di PHP (ogni versione rilasciata dal 4.3.0) più HHVM.

Non so se è sufficiente per i vostri scopi.

Problemi correlati