Programmatore PHP, Programmatore AJAX, Sviluppo di Siti Dinamici, Sviluppo di Applicazioni WEB 2.0, Possibilità di aggiornare i contenuti con CMS.

Programmatore PHP e Programmazione ad Oggetti.



Pur avendo una primitiva presenza già nella versione 4, e solo dalla versione 5 in poi che PHP sono stati introdotti per i Programmatori PHP diversi elementi che ne consentono l’utilizzo orientato agli oggetti, in quest’articolo inizieremo a valutarne alcuni aspetti fondamentali che aiuteranno a capire alcune delle funzionalità di questa tipologia programmativa.

In quest’esempio valuteremo due aspetti teorici che possono introdurre un Programmatore di codice PHP allo programmazione orientata agli oggetti.

Pur ritenendo probabilmente sufficiente la programmazione procedurale per una moltitudine di progetti di medio/bassa complessità, credo sia necessaria o utile abituarsi a questa tipologia programmativa in modo da sfruttarne tutti gli aspetti in progetti più complessi. Per un Programmatore PHP infatti i costrutti ad Oggetti rappresentano una notevole chance nel rispettare e nel seguire le regole tracciate dall’ingegneria del software come la Scalabilità, Modularità, Controllo dei Bug, Incapsulamento.

Dato per scontata la conoscenza dei i concetti base della programmazione:

classi (Le classi sono uno strumento per costruire strutture dati che contengano non solo dati ma anche il codice per gestirli), oggetti(Un oggetto è una istanza di una classe), metodi(procedure che operano su un oggetto) e attributi(variabili di una classe).
In quest’articolo/esempio illustreremo due concetti importantissimi alla base di questa tipologia programmativa: L’ereditarietà e il polimorfismo.

uml_ereditario

Un Programmatore PHP che utilizza la programmazione ad oggetti potrà definire una classe che rappresenta dei metodi e degli attributi comuni a più classi derivate. L’esempio più classico usato nei libri didattici è quello delle forme geometriche come possiamo vedere nell’esempio UML.

La classi forme (rettangolo e quadrato) ereditano dalla classe che estendono l’attributo area e il metodo calcolaArea, essendo già definite non sarà bisogno ridefinirle, al contrario però possono aggiungere dei metodi o delle funzionalità estendendo i concetti della prima.
Quest’esempio può bastare a far capire ad un Programmatore PHP l’utilità di questa tipologia programmativa.

Infatti sarà possibile raggruppare in una sola classe gli elementi comuni ad un gruppo di classi appartenenti allo stesso genere, questo permetterà in caso di un aggiornamento o dell’inserimento di un nuovo metodo o attributo comune, di non dover modificare le singole classi ma di poter modificare la classe genitore (o superclasse) in modo da modificare contemporaneamente tutti gli oggetti gerarchicamente connessi.

A questo punto un Programmatore PHP avrà bisogno, di approfondire un altro concetto strettamente legato al precedente: Il Polimorfismo.

Il Polimorfismo  la capacità di una classe derivata di ridefinire un metodo con lo stesso nome del metodo ereditato, modificandone il comportamento, quindi è la capacità di avere comportamenti diversi per metodi con lo stesso nome, appartenenti a oggetti gerarchicamente connessi tra loro.

Riprendendo l’esempio precedente, le due forme rettangolo e quadrato non hanno bisogno di ridefinire il metodo calcolaArea poichè la formula definita nella metodo forma è lato per lato, utile ad ambedue. Se però aggiungiamo altre figure avremmo la necessità di ridefinire il metodo calcolaArea poichè per il cerchio o per il trapezio tale formula sarà differente.

Questa funzionalità programmativa permette ad un Programmatore PHP una condivizione di metodi parziale, cioè di definire oggetti tra loro molto simili, derivati ma non del tutto identici.

Nell’esempio successivo, “volutamente banale” ho supposto che una nota produttrice di lettori MP3 crei un software er gestire un lettore. In una prima versione i jack per la trasmissione è uno, ma successivamente sviluppa un lettore con due jack di trasmissione,quindi pur mantenendo quelle che sono le funzionalità base del lettore (aventi,indietro,etc.) il lettore modifica il metodo trasmettiMusica affinchè possa trasmettere due segnali.

Questo permette alla classe software di non modificare il software precedente ma di definire una classe che eredità metodi e attributi e polimorfizza uno dei metodi.


//Questa è la prima versione di lettore MP3
class mp3Player {
//Parto dalla traccia 1
public $traccia = 1;
//La funzione Play trasmette la traccia alla cuffia dell'ascoltatore
public function play() {
echo "il walkmen prima versione trasmette la traccia:".$this->traccia." alle Cuffie dell'ascoltatore<br/>";
}
//Metodo che va avanti di 1 traccia
public function avanti() {
$this->traccia++;
}
//Metodo che va indietro di 1 traccia
public function indietro() {
$this->traccia--;
}
}

//La nuove classe estensione della vecchia tipologia
class mp3Player_nuovaVersione extends mp3Player {
//Ne eredita i metodi e gli attributi ma ne polimorfizza la funzione play per trasmettere su due canali
public function play($persona1,$persona2) {
echo "il walkmen nuova versione trasmette la traccia:".$this->traccia." alle Cuffie di $persona1<br/>";
echo "il walkmen nuova versione trasmette:".$this->traccia." alle Cuffie di $persona2<br/>";
}
}

//Avvia il Programma
//Giulio ha il lettore vecchi quindi con play ascolta la musc
$lettoreGiulio = new mp3Player();
$lettoreGiulio->play();

//Marco ha la nuova versione
$lettoreMarco = new mp3Player_nuovaVersione();
//Utilizza un metodo ereditato
$lettoreMarco->avanti();
//Condivide l'ascolto con Alberto e utilizza la nuova funzione play
$lettoreMarco->play("Marco","Alberto");
//Quindi il lettore di secondo tipo può essere banalmente utilizzato come primo tipo (cioè ascolto a singolo jack)
//e il su software può essere sviluppato in poco, semplicemente estendendo il precedente.

(Guarda Esempio)

PER ULTERIORI INFORMAZIONI:

Daniele Tabacco
Programmatore PHP | Web Developer | Consulente Web e SEO

PHP - MySql - AJAX - HTML5 - JAVASCRIPT - CSS - JSON/XML - JQuery
WebApps, Applicazioni, Realizzazione Siti Mobile per iPhone e Android
Programmatore PHP - Consulente Web Marketing Napoli, Roma, Milano, Firenze.
Tel.+39 329.11.73.918
email: daniele.tabacco[at]gmail.com
skype: daniele.tabacco

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio

 


POTREBBE INTERESSARTI ANCHE:
Ecco dei Semplici consigli per poter progettare e realizzare al meglio Siti Internet Mobile di Successo, scritta da un Programmatore PHP e Consulente Web Marketing specializzato nello sviluppo di Siti Internet Mobile
Utilizza i Social Media per dare al tuo sito una Spinta in Più! Utilizza le informazioni dei canali Social per realizzare Servizi Originali e a Valore Aggiunto e Integrare Foursquare, Twitter, Facebook, Youtube, etc. nel tuo Sito Internet
Vuoi aggiornare Twitter con un Form e del codice PHP? Consulta questa guida semplice guida che consente di aggiornare Twitter senza essere un Programmatore PHP esperto
Una semplice guida per la realizzazione di uno Script per Codice Captcha
Usare PHP per inviare email con allegati, sfruttando la libreria PHPMailer e le conoscenze come Programmatore PHP, facilmente modificabile e personalizzabile per le vostre esigenze.


buzzoole code
Leggi altro:
Importare un Database Access in MySQL

Questo Brevissimo Articolo è dedicato ad Ogni Programmatore PHP o Programmatore MySQL che intende effettuare una migrazione da un database...

Chiudi