Questo è piuttosto soggettivo, penso. La maggior parte delle persone direbbe che PHP è stato ragionevolmente compatibile con le versioni precedenti. Nel senso che uno script scritto per la versione 4 avrebbe la funzione principalmente sulla versione 5. Sono disponibili varie impostazioni e avvisi che possono essere notificati su potenziali problemi (ad esempio E_STRICT
e E_DEPRECATED
livelli di avviso ).
Tuttavia, probabilmente ci sono un certo numero di persone che hanno morso le strane variazioni di compatibilità tra le versioni ( ecco un elenco per PHP 5.3 ad esempio ).
Modifica per rispondere alle tue domande dirette:
Gli sviluppatori che lavorano su PHP è facile migrare da una versione all'altra?
Non è particolarmente difficile. Di nuovo, questo è soggettivo e dipende da ciò che consideri "facile". Se passi dalla versione 4 alla versione 5 (per esempio), allora è più difficile di 5.1 a 5.2. Ma dipende anche dalla tua domanda n. La versione 5, ad esempio, ha introdotto degli aggiornamenti piuttosto importanti al modello a oggetti, quindi mentre è ancora possibile eseguire uno script scritto per la versione 4 in gran parte non modificato, non utilizzerà il sistema di classe PHP 5 e quindi potrebbe non essere considerato "idiomatico".
Esistono numerosi problemi di compatibilità, in avanti o indietro?
Vasta? No. Gli script scritti per la versione 3 verranno eseguiti in gran parte non modificati sulla versione 4 e gli script scritti per la versione 4 verranno eseguiti in gran parte non modificati sulla versione 5. L'altro modo (la compatibilità con i forwards) è una storia completamente diversa e nessuna lingua (che io sappia di ?) tenta di essere compatibile in avanti . L'enorme numero di funzionalità aggiuntive rende difficile eseguire uno script progettato per 5.3 anche sulla versione 5.2 (a dire il vero, 5.3 era quasi un aggiornamento della versione principale).
Il tuo progetto si attacca a una versione particolare fino alla fine?
Per la maggior parte, sì. Ma la maggior parte dei "progetti" su cui lavoro sono veri e propri siti web. Se stavo lavorando su una framework o libreria , l'aggiornamento per lavorare sulle versioni più recenti del runtime sarebbe una considerazione.
Lo stile di programmazione, l'approccio cambia da versione a versione?
Sì. La versione 5 ha aggiornato il modello a oggetti in modo così ampio che il codice PHP 5 (idiomatico) sembra molto diverso dal codice PHP 4 (idiomatico). È ancora sostanzialmente lo stesso ( $variable
, <?php ?>
tag ecc.), Ma strutturalmente potrebbe sembrare molto diverso.
Personalmente, tendo ad usare un framework (attualmente mi piace molto CakePHP) e in genere introdurranno il loro stile e approccio al di sopra del motore PHP di base. Cambierò spesso framework anche per progetti diversi, a seconda delle circostanze e di ciò che è meglio per il lavoro (ad esempio, mi piaceva Drupal, ma ora mi sento troppo "PHP4-ish" per i miei gusti)
Se dovessi iniziare con PHP per contribuire a un progetto costruito con versioni precedenti, l'apprendimento dell'ultima versione sarebbe controproducente per questo scopo?
No, non sarebbe controproducente , ma devi ricordare che le versioni precedenti hanno fondamentalmente "funzionalità mancanti" rispetto alle versioni più recenti. Ad esempio, mi manca molto la migliore classe DateTime
incorporata quando passo da PHP 5.3 a 5.2 e precedente ...
In breve
Personalmente, penso che stai mettendo troppa enfasi sulla "compatibilità" qui. Scrivo principalmente codice Python e C ++ al lavoro, e mi diletto anche in Java per lo sviluppo Android e anche un po 'di ASP.NET ogni tanto. Francamente, passare da PHP4 a PHP5 è quasi banale in confronto.