Verso PHP 5: (OOP) Nuove funzionalità orientate agli oggetti
Giovedì 13 Settembre 2007 - 12:59
di Simone Carletti

Lo avevo anticipato che non sarebbero bastate poche pagine per descrivere tutte le nuove funzionalità orientate agli oggetti di PHP 5, ma prometto che questo è l’ultimo post specifico sull’argomento della serie verso PHP 5.
Oltre al supporto per costruttore, distruttore e metodi speciali PHP 5 introduce diverse novità molto utili.
Innanzi tutto 3 nuovi dichiarazioni di scope per le variabili di una classe.
In PHP 4 ogni variabile di classe era pubblica, nonostante fosse convenzione anteporre un carattere _ davanti a quelle ad uso privato.
In PHP 5 è possibile definire variabili pubbliche, private e protette. Il carattere underscore _ non è obbligatorio, ma la convenzione rimane tra i programmatori di vecchia data.
class User() {
public $firstName;
public $lastName;
private $_username;
protected $_email;
}
Le stesse keyword, con medesimo significato, si applicano alla dichiarazione di metodi.
Esistono poi due ulteriori dichiarazioni: final e static.
Il primo costrutto rende una variabile/funzione non estendibile da sottoclassi.
La seconda invece permette è un po’ più complessa.
Nel caso di metodi permette richiamare un metodo senza istanziare direttamente la classe, quindi non ha accesso alla variabile $this.
Applicata ad una variabile consente alla variabile di mantenere il suo stato (valore) tra una chiamata di una funzione e l’altra. Questa casistica è molto utile per pattern di programmazione come il singleton.
PHP 5 consente inoltre di dichiarare costanti di classe, interfacce, classi astratte e metodi astratti.
Tutto questo rende PHP 5 un linguaggio molto più orientato agli oggetti rispetto alla versione precedente.
Categoria: PHP e Open Source | Permalink
Commenti
1
perchè l’ultimo?
per una volta che si trova un post serio e tecnico…non se ne fanno più?
mi piacerebbe, lancio l’idea, se si potesse aprire una sezione dedicata all’argomento, magari su onePHP.it, o nel tuo blog personale o da qualche altra parte.
e’ davvero un peccato buttare via questi post facendoli morire.che ne pensate?
2
Ciao yQy,
sono contento che queste pubblicazioni siano risultate interessanti.
In realtà, la mia intenzione era capire se prima di proseguire c’era qualche aspetto che non avevo ancora considerato che andava magari trattato… insomma, sapere cosa avreste voluto leggere!Sto pensando di aggiungere ancora un paio di post alla serie, almeno uno sulle eccezioni, sulla SPL e senz’altro uno con consigli agli hosting. :)
Cosa ne pensate?
# - postato da Simone Carletti - 13 Settembre 2007 - 15:21
3
sto passando a php5 in questo periodo (ho iniziato da poco piu’ di mese) e trovo molto interessante la spiegazione delle differenze degli oggetti in PHP5, e comunque alle differenze tra php4 e php5.
# - postato da Miki - 13 Settembre 2007 - 15:29
4
io ho iniziato a studiare il php a partire dalla versione 5! Probabilmente sono una delle poche persone che ha studiato prima il 5 e poi è dovuta tornare indietro al 4 perché obbligata. :( Tutto ciò è stato ancora più frustrante…
Ben vengano articoli sulla promulgazione del php5!!!
5
Tutto questo rende PHP 5 un linguaggio molto più orientato agli oggetti rispetto alla versione precedente.
Tutto questo rende PHP5 praticamente Java… per questo mi chiedo se ce n’era veramente bisogno.
6
ma questo com’era in php 4..
class User() {
public $firstName;
public $lastName;private $_username;
protected $_email;
}
7
sarei molto grato a chi mi da una dritta su come cominciare a progettare un gestionale con tecnica OOP in PHP,
il gestionale dovrebbe fare più o meno queste cose :
- inserimento, modifica, cancellazione di clienti
- inserimento, modifica, cancellazione di fornitori
- inserimento, modifica, cancellazione di articoli
- inserimento, modifica, cancellazione di preventivi
- inserimento, modifica, annullamento di bolle / bolle di reso
- inserimento, modifica, annullamento di fatture / note di credito
- Stampa dei documenti
- visualizzazione stato magazzinoil programma è già esistente, ma programmato in modo procedurale.
Grazie 1000







