Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Undefined array key "tbm_guide_level" in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113

Warning: Trying to access array offset on value of type null in /data/websites/htmlit/web/app/themes/htmlit/src/ViewModel/Post/Templates/SingleGuide.php on line 113
Migrazione da PHP 4 a PHP 5 | HTML.it
Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Migrazione da PHP 4 a PHP 5

Alcuni consigli su come preparare la migrazione dalla versione 4 alla versione 5 di PHP. Il supporto per la vecchia versione terminerà il 31 dicembre 2007 e gli aggiornamenti saranno garantiti solo fino ad agosto 2008
Alcuni consigli su come preparare la migrazione dalla versione 4 alla versione 5 di PHP. Il supporto per la vecchia versione terminerà il 31 dicembre 2007 e gli aggiornamenti saranno garantiti solo fino ad agosto 2008
Link copiato negli appunti

Il team di PHP ha annunciato il prossimo 31 dicembre come il termine ultimo di supporto per la versione 4 di PHP. Dal primo gennaio 2008 PHP4 non verrà più supportato ufficialmente dal team di sviluppo.

Verranno ancora sviluppate eventuali patch di sicurezza per PHP4 solo fino ad agosto 2008. Fino ad oggi la maggior parte dei Internet Service Provider fornisce installazioni con PHP4, ma il recente annuncio del team di PHP forzerà gli stessi provider all'aggiornamento dei server verso il PHP5.

Sebbene PHP5 offra molte nuove caratteristiche è stato progettato per essere compatibile il più possibile con le versioni precedenti limitando, naturalmente, le funzionalità non conciliabili.

Dalla necessità di migliorare questa situazione nasce il progetto GoPHP5, un impegno da parte di numerosi gruppi di sviluppo di progetti open source per cui, a partire dal 5 febbraio 2008, il rilascio di qualsiasi nuova caratteristica dovrà includere, tra i requisiti minimi necessari ad un corretto funzionamento, una versione di PHP uguale o maggiore alla 5.2.0.

In questo articolo diviso in due sezioni ricorderemo in primo luogo le più importanti novità di PHP 5 per poi procedere ad alcuni consigli su come preparare il passaggio dall'una all'altra versione del potente motore di scripting. Partiamo dunque dalle novità di PHP 5.

Novita di PHP5

In questi ultimi anni le molte esigenze dei programmatori hanno contribuito ad un accrescimento delle potenzialità per quanto riguarda la programmazione ad oggetti in ambiente PHP. Gli autori dello Zend Engine 2.0, il motore sul quale si basa il nuovo PHP5, hanno sviluppato un modello ad oggetti molto simile al Java e al C++.

Le nuove funzionalità ed i vantaggi che la nuova versione di PHP fornisce possono essere brevemente riassunti nei seguenti punti:

  • MySQL mysqli
  • XML
  • Gli iteratori
  • Gestione degli errori
  • Gestione di stream
  • Supporto a SOAP
  • Tidy :

Object model

In PHP 5 è stato introdotto un nuovo Object Model. La manipolazione degli oggetti in PHP è stata completamente riscritta, consentendo migliori performance e nuove funzionalità. Nelle precedenti versioni di PHP gli oggetti, quando venivano richiamati dalle funzioni, erano unicamente rappresentati dal valore; quindi ogni qualvolta si assegnava l'oggetto si determinava una copia dello stesso anziché la creazione di un riferimento.

Questa modalità di utilizzo delle classi è stata abbandonata. Il PHP5, sta assumendo sempre di più le caratteristiche di un linguaggio ad oggetti e secondo questa nuova impostazione, l'assegnazione di un oggetto ad un'altra variabile crea automaticamente un riferimento e non più una copia dell'oggetto stesso.

Eccezioni

PHP 5 possiede un modello per l'eccezioni sintatticamente del tutto simile agli altri linguaggi di programmazione. Un'eccezione all'interno di PHP è identificata con i comandi try, catch, e throw. Per lanciare un'eccezione è sufficiente utilizzare il comando throw seguito da un oggetto di tipo Exception o una sua sottoclasse. Per la gestione delle eccezioni, invece, si usa il costrutto try-catch. Un blocco try deve includere almeno un blocco catch. Possono essere usati anche molteplici blocchi catch in modo da includere più condizioni.

Anche la modalità operativa di funzionamento è analoga a quella presente negli altri linguaggi ad oggetti. In caso di riscontro di un'eccezione il codice non eseguirà il comando corrispondente e PHP passerà al successivo blocco di codice. Se non viene prevista l'eccezione verrà causato un Fatal Error e il PHP mostrerà un Exception Message.

XML

Fare il parsing di un file XML significa manipolare il documento in questo formato attraverso un linguaggio utilizzato come interfaccia. Generalmente, le azioni di parsing consistono nell'accesso in lettura, nella modifica e nell'interrogazione di un file XML. In PHP, fino alla versione 4, per il parsing di documenti XML venivano sfruttate in particolar modo le librerie DOM e SAX; nella versione 5, invece, sono stati introdotti nuovi strumenti anch'essi strutturati su di un'interfaccia ad oggetti - SimpleXML - che ha l'indubbio vantaggio di rendere più facile il compito dello sviluppatore.

Rispetto a SAX, SimpleXML conserva del tutto la struttura propria del file XML anche per quanto riguarda la rappresentazione interna. Rispetto a DOM, invece, si riscontra una facilità di creazione degli script per il parsing; SimpleXML necessita infatti di una sintassi molto più semplice e di listati di conseguenza molto più "leggeri".

MySQL e PHP5

L'estensione mysql è ancora supportato con la sola differenza che il suo supporto non è più abilitato di default in PHP5. Per abilitarla gli utenti dovranno includere l'opzione --with-mysql nella fase di compilazione del motore. Successivamente gli utenti dovranno modificare il file php.ini e abilitare manualmente il supporto dedicato alla vecchia estensione.

Un'altra novità di rilievo è data dall'implementazione interna di SQLite, la libreria che permette di scrivere e gestire un database all'interno di un unico file, esattamente come fa Microsoft Access: in questo modo i fornitori di hosting potranno differenziare ulteriormente le proprie offerte dando anche ai piccoli siti la possibilità di creare pagine Web dinamiche, senza dover per forza utilizzare costosi (anche in termini di prestazioni) DBMS.

Per maggiori informazioni su tutte le nuove funzionalità di PHP5, consultare gli articoli della sezione PHP di HTML.it.

Nella prossima parte dell'articolo passeremo a trattare il processo di migrazione.

Dopo aver considerato nella prima parte dell'articolo le novità di PHP 5 mostriamo nelle prossime pagine il processo di migrazione.

Il Processo di Migrazione

Il processo di migrazione è l'importazione del codice implementato con il PHP4 all'interno del nuovo motore sui cui è basato il PHP5. Quindi, si tratta di comprendere quali modifiche bisogna apportare ad un listato scritto con PHP4 per essere interpretato correttamente dalle nuove versioni del linguaggio.

Il processo di migrazione da PHP4 a PHP5 può essere articolato in due fasi essenziali:

  1. Verifica della compatibilità
  2. Aggiornamento del codice

La Verifica della Compatibilità

Entrando in dettaglio, bisogna prestare attenzione alle seguenti situazioni:

  • Il nuovo Object Model
  • La nuova nomenclatura (verificando per esempio nuove parole riservate, ecc)
  • La retroincompatibilità
  • Le nuove impostazioni di configurazione

La fase di Aggiornamento del Codice

Nel seguito verranno mostrati in dettaglio gli aspetti principali di cui tener conto nella migrazione da PHP4 a PHP5.

Retrocompatibilità

Sebbene la maggior parte di codice PHP4 esistente dovrebbe funzionare senza modifiche, è necessario prestare attenzione alle caratteristiche incompatibili con le versioni precedenti.

Tra le principali funzionalità incompatibili possono essere segnalate le seguenti:

  • Nuove Parole Riservate
  • Per le funzioni strrpos() strripos() needle
  • Un uso errato degli offsets per le stringhe causa un E_ERROR E_WARNING
  • La funzione array_merge() E_WARNING
  • Un oggetto senza proprietà assegnate non è più considerato come vuoto
  • Le classi devono essere dichiarate prima di essere usate nel caso in cui si stanno utilizzando le nuove funzionalità del PHP5

Per poter apprendere la lista di tutte le funzionalità incompatibili con le altre versioni di PHP si rimanda alla documentazione ufficiale

File di configurazione

In PHP5 per Windows ci sono stati dei cambiamenti per il nome dei file CLI e CGI. Nella versione 5, la versione CGI è stata rinominata in php-cgi.exe (prima php.exe) e la versione CLI risiede nella stessa directory (nelle versioni precedenti il path era cli/php.exe).

Migrare la configurazione di Apache è estremamente facile. Si veda l'esempio riportato di seguito per controllare le modifiche:

# PHP4

# PHP5

Nuove Direttive

Nella configurazione di PHP5 sono state introdotte nuove direttive per quanto concerne il file php.ini:

  • Mail.force_extra_parameters mail() mail() SMTP smtp_port sendmail_from sendmail_path sendmail.exe
  • Register_long_arrays $ HTTP_ * _VARS
  • Session.hash_function sessionID session.hash_function session.hash_function
  • Session.hash_bits_per_character
  • Zend.ze1_compatibility_mode

Hosting

La migrazione da PHP4 a PHP5 non sarà immediata e richiederà, soprattutto da parte dei fornitori di hosting, un periodo di tempo per poter completare l'operazione di trasferimento: la nuova versione del linguaggio è infatti parzialmente incompatibile con la precedente e costringerà gli sviluppatori a metter mano al loro vecchio codice. Inoltre c'è da considerare almeno durante la fase di transizione (ovvero fino alla dead line di agosto 2008) la possibilità di far convivere PHP5 e PHP4 sulla stessa macchina per poter rendere più agevole e più attinente possibile la migrazione.

Naturalmente la domanda che ci si può legittimamente porre è: quali saranno le conseguenze se si possiede un dominio che attualmente supporta PHP4?

La risposta è semplice e dipende dalla qualità con cui è stato prodotto il codice. Se si è cercato di rendere il passaggio tra le due versioni agevole o se il codice è ben scritto e non presenta singolarità, l'impatto della migrazione sarà minimo o addirittura nullo. Se invece tutti questi presupposti cessano di esistere le conseguenze potranno essere molto spiacevoli fino al non funzionamento del programma.

Il paradigma è che un buon programma scritto per le ultime versioni di PHP4, senza caratteristiche particolari, dovrebbe funzionare senza alcun problema utilizzando la tecnologia del PHP5.

Ti consigliamo anche