Con la vesione 5 di PHP gli sviluppatori hanno rivolto
particolare attenzione al supporto della programmazione per oggetti (object oriented o OOP); questa
metodologia era infatti prevista solo parzialmente per il comunque utilizzatissimo PHP 4. L'approccio per oggetti
rappresenta un'importante novità che in un futuro non molto lontano potrebbe rivoluzionare il nostro modo di produrre
codice per la generazione dinamica di contenuti (scripting server side).
Quando digitiamo il listato per
uno script, utilizzare la metodologia per oggetti impone di suddividere una determinata problematica in parti differenti e
tra loro indipendenti, vengono quindi stabiliti degli oggetti, si potrà poi intervenire su uno solo o solamente
su alcuni di essi senza il rischio di compromettere la struttura generale dell'applicativo.
La OOP
permette quindi interventi veloci e mirati sul codice: al presentarsi di un nuovo problema (ad esempio, la necessità
di un aggiornamento), non dovremo modificare sostanzialmente l'impianto di uno script, basterà lavorare sui singoli
oggetti interessati dalla modifica. Ciò non vuol dire che gli oggetti siano tra loro entità isolate e non
comunicanti, anzi, il vantaggio della OOP stà proprio nella capacità di interagire che essi possiedono
pur conservando lo status di entità univoche.
Fino a PHP4, la concezione del codice si è
basata principalmente sul paradigma procedurale, una metodologia fondata sul raggruppamento di parti di uno script
ripetute in frammenti di listato (procedure) riutilizzabili e richiamabili ogni volta a seconda della
necessità. Le prcedure si configurano quindi come dei sottoprogrammi destinati a svolgere particolari funzioni, come
ad esempio il controllo su un'occorrenza o un'operazione matematica, queste funzioni, sempre valide, potranno essere
invocate nel codice restante.
Con PHP5, la scrittura del codice può basarsi su un nuovo approccio,
nelle OOP infatti il listato non ruota attorno alle procedure ma ai dati stessi che dovranno essere elaborati tramite
lo script.
Se volessimo definire l'essenza di un oggetto, potremo identificarlo come una particolare
entità di tipo logico dotata di un'identità univoca (non ripetibile), che contiene nello stesso tempo le
informazioni su cui il codice dovrà intervenire e le metodologie attraverso le quali s'interverrà sulle
informazioni contenute.
Troppo complesso? Soltanto in apparenza! In realtà anche noi nella nostra vita
quotidiana siamo circondati di "oggetti"; per esempio, un orologio viene riconosciuto come tale in quanto possiede
componenti e funzioni che lo rendono uno strumento utile per misurare il tempo, anche costruendolo nelle forme più strane
esso sarà per noi comunque un orologio in quanto la sua destinazione finale non andrà a mutare.
Abbiamo detto in precedenza che gli oggetti sono univoci, essi infatti posseggono un nome che dovrà essere unico
nel complesso dello script di cui andrà a far parte; potrebbe sorgere nuovamente il dubbio sull'oggetto concepito
quale realtà isolata, ma ciò non è vero in quanto gli oggetti recanti caratteristiche similari possono
essere raggruppati all'interno di classi.
Per classi intendiamo definire delle tipologie di dato a cui
fanno capo gli oggetti della medesima natura; le classi definisco per i loro oggetti due elementi
fondamentali: