Inviato il 09-11-2007
Archiviato in (Senza categoria) da Francesco

Come già annunciato in precedenza il prossimo 31 dicembre scadrà il termine ultimo di supporto per la versione 4 di PHP da parte del team 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. Per quanto riguarda noi, confermiamo che da più di un anno instaliamo solo la versione di PHP5 anche se ancora 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: grazie alla nuova mysqli (MySQL Improved extensions) viene offerta la possibilità di utilizzare una connessione SSL verso il server, di gestire query già preparate con parametri collegati, ottimizzandone quindi l’esecuzione. Infine viene offerta una nuova interfaccia Object Oriented a MySQL;
  • XML: maggiore interoperabilità tra le varie estensioni con un nuovo supporto a DOM (Document Object Model) che consente di considerare questa specifica come un API indipendente dal linguaggio di programmazione;
  • Gli iteratori. Raggruppati nella SPL (Standard PHP Library) permettono di ciclare tramite istruzioni foreach su diversi tipi di dato (elenchi di file, risultati di query, documenti XML, ecc);
  • Gestione degli errori tramite eccezioni (exception handling). Questo permette, come già avviene in altri linguaggi come Java o C++, di separare completamente la gestione degli errori dalla logica del programma;
  • Gestione di stream, filtri e wrapper come interfaccia di lettura e scrittura su file.
  • Supporto a SOAP sia per la creazione di web service che come client per web services già esistenti;
  • Tidy: un’estensione che permette di validare al volo il codice HTML o XHTML generato come output.

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.

Commenti chiusi.