La programmazione orientata agli oggetti (Object Oriented Programming, da cui l'acronimo OOP) è uno stile fondamentale di programmazione (o paradigma) che si basa principalmente sul raggruppamento all'interno di un'unica entità (la classe) delle strutture dati e delle procedure che operano su di esse.
Istanziando la classe, che rappresenta fondamentalmente una struttura astratta, è possibile creare "oggetti" concreti (le cosiddette istanze) dotati di proprietà (dati/variabili) e metodi (procedure/funzioni) che operano sui dati dell'oggetto stesso.
Per quanto complessa possa essere questa definizione, potete rassicurarvi sapendo che quest'ultima racchiude la maggior parte dei concetti fondamentali della OOP.
Prima della nascita della versione 5, PHP era un linguaggio sostanzialmente procedurale, ovvero fortemente basato sulle funzioni, interne o user-defined. Nonostante fosse dotato di un singolare modello ad oggetti, questo non poteva assolutamente essere considerato completo e non permetteva di mettere in pratica i veri concetti della programmazione OOP. Di conseguenza, il vecchio modello non consentiva di usufruire di tutti i vantaggi di questo paradigma.
Con il rilascio della versione 5, le cose sono decisamente cambiate. Ora PHP dispone di un solido modello OOP completo di tutti i più importanti strumenti che questo offre. Dunque, anche se PHP continua a non essere un linguaggio nativamente orientato agli oggetti (come ad esempio Java o altri), permette ora di realizzare solide applicazioni OOP.
Nel mio precedente articolo denominato Codice procedurale vs OOP sono ben elencati tutti i vantaggi derivanti dall'utilizzo e dalla padronanza del modello ad oggetti (compresi, ovviamente, gli eventuali svantaggi) con tanto di dettagliate descrizioni e confronti con il modello procedurale. Riporto qui solo i principali benefici che lo sviluppatore PHP trae adottando una struttura OOP:
In sostanza, oltre a garantire maggiore modularità ed estensibilità rispetto alla controparte procedurale, il modello ad oggetti consente di sviluppare applicazioni PHP di nuova generazione usufruendo degli strumenti (web services) e delle modalità logiche (design patterns) utili alla loro nascita.
Come ho precedentemente dichiarato nell' articolo Codice procedurale vs OOP (e come ripasseremo nella prossima lezione), realizzare applicazioni usufruendo del modello ad oggetti è decisamente più complesso rispetto al modello procedurale. Questo perché le teorie che stanno alla base di questo paradigma sono molte e parecchio articolate, così come è elevata la quantità di gli strumenti che ci vengono forniti.
Questa guida ha appunto lo scopo di trasmettere questi concetti, o meglio, tutti i concetti fondamentali della programmazione ad oggetti in PHP e consentire allo sviluppatore di realizzare applicazioni object oriented con il linguaggio PHP. La guida sarà sostanzialmente divisa in due parti:
Nonostante percorra dettagliatamente i concetti di base della OOP e sia destinata principalmente ad un utenza di principianti, questa guida è scritta in modo che ogni categoria di sviluppatore PHP (principiante, intermedio ed esperto) possa trarre vantaggio dalla lettura.
Sessioni PHP: cosa sono, come si usanoDalla configurazione di PHP, alla gestione delle sessioni in un... |
Continuous Integration: automatizziamo i client con PhingContinuous Integration: automatizziamo i client con Phing. Esempi... |
Archiviazione delle applicazioni PHP con PharCome incorporare intere applicazioni PHP all'interno di un singolo... |
I traits in PHP 5.4Cosa sono, a cosa servono e come si unsano i traits, la novità per... |
PHP 5.4: il web server integratoImpara ad usare il web server integrato nella versione 5.4 di PHP:... |
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Guida PHP con Windows e IISInstallare ambienti per lo sviluppo e la produzione di applicazioni... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |