Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: PHP e la programmazione orientata agli Oggetti :: Indice Php

PHP e la programmazione orientata agli Oggetti

Categoria: Php Inserito il: 29-11-2005 Stampa (6119 click)

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:

  1. attributi, o anche proprietà, che hanno lo scopo di rappresentare le informazioni salvate all'interno dello spazio di memoria da essi contenuto;
  2. metodi, una rappresentazione delle funzioni con cui un oggetto può intervenire sugli attributi.
Semplificando quanto appena esposto, possiamo definire una classe come un insieme di oggetti; questi ultimi, di conseguenza, potranno essere definiti come istanze della classe di appartenenza.
Si istanzia un oggetto quando viene assegnata ad una determinata variabile una porzione di memoria in cui devono essere allocati gli attributi e i metodi relativi ad una classe specifica. Gli oggetti che vengono definiti all'interno di una medesima classe sono uguali tra loro per attributi e metodi, si differenziano però tramite il nome e il contenuto in informazioni degli attributi.

Mentre un oggetto "esiste" nel momento in cui esso viene definito imponendogli un nome, una classe non è mai un'entità reale ma semplicemente un modello di riferimento per riconoscere e classificare oggetti simili che fanno capo ad essa. Questo concetto, molto importante, può essere chiarito con un riferimento alla metodologia procedurale: una variabile viene definita nel momento in cui è valorizzata, potremo valorizzarla con una stringa di caratteri, e sarà una variabile stringa, potremo valorizzarla con un valore numerico, e sarà una variabile numerica. Quindi tra un oggetto e una classe abbiamo lo stesso rapporto che si prefigura tra una variabile e il relativo tipo di dato.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
MySQL: eliminare records duplicati e impedirne l'inserimento
Una delle richieste di supporto più frequenti in tema di gestione delle basi di dati è quella relativa all'eliminazione... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti