|
Clase si obiecte
Acum ca stii sa creezi functii in PHP, probabil ca ti-ai petrecut ultimele zile inspectand propriile aplicatii si inlocuind anumite fragmente de cod cu functii. Totusi, ar trebui sa stii ca functiile reprezinta doar varful icebergului. Sub ele, se ascunde un acronim de trei litere care inspira frica in randul programatorilor incepatori.
POO.
Daca lucrezi de ceva timp in PHP, probabil ca ai mai auzit termenul de POO inseamna Programare Orientata pe Obiecte. In POO, scriptul PHP lucreaza cu entitati denumite obiecte pentru construi functionalitatea necesara programului tau. Spre deosebire de PHP 4, PHP 5 ofera suport extins pentru POO, aducand obiectele PHP la standardele impuse de catre principiile POO si oferind programatorilor noi facilitati.
Pe parcursul acestui tutorial, vei putea citi despre capacitatile PHP in legatura cu implementarea obiectelor (atat in PHP 4 cat si in PHP 5) si vei putea urmari diverse exemple si explicatii ce ilustreaza utilizarea lor. Vom acoperi principiile de baza clasa, obiecte, atribute si metode insotite de cateva concepte mai avansate constructori, destructori, specificatori de acces, proprietati si clase mostenite. Chiar daca programarea orientata pe obiecte este un subiect nou pentru tine, nu ai de ce sa-ti faci griji obiectele in PHP sunt usor de folosit si de inteles, si te vor ajuta sa iti organizezi cat mai bine munca.
Clase in PHP
Inainte de a trece mai departe, trebuie sa ai o idee clara despre conceptele pe care POO le presupune.
In PHP, o clasa reprezinta un set de instructiuni care indeplinesc o anumita sarcina. Implementarea unei clase contine atat variabile, cat si functii, ea reprezentand un sablon (template) cu ajutorul caruia pot fi create instante specifice.
Aceste instante specifice ale unei clase poarta numele de obiecte. Fiecare obiect are o serie de caracteristici, sau proprietati, si anumite functii predefinite metode. Aceste proprietati si metode ale unui obiect corespund variabilelor si functiilor din definitia clasei.
Odata ce ai creat o clasa, poti defini oricate instante ale acesteia. Fiecare dintre aceste instante reprezinta un obiect independent, ce poate fi manipulat fara ca celelalte obiecte sa fie afectate in vreun fel. Aceasta indepedenta a obiectelor devine foarte utila atunci cand trebuie sa lucrezi cu doua instante in acelasi timp de exemplu, doua conexiuni simultane la o baza de date, sau doua interogari (query), sau doua carucioare de cumparaturi ale unui magazin online.
Clasele te ajuta si in ceea ce priveste modularitatea codului poti defini o clasa intr-un fisier separat, incluzandu-l apoi in scripturile care folosesc aceasta clasa. Aceasta modalitate de implementare simplifica modificarile ulterioare pentru ca, in cazul in care vei dori sa adaugi noi functionalitati obiectelor tale, vei avea de modificat un singur fisier.
Ca sa intelegi mai bine cele de mai sus, sa luam ca exemplu un animal, cum ar fi un urs, si sa incercam sa il reprezentam ca un obiect.
Orice urs are anumite caracteristici varsta, greutate, sex care sunt echivalente cu proprietatile unui obiect. In plus, fiecare urs are anumite activitati mananca, doarme, merge, alearga si hiberneaza acestea reprezentand metodele unui obiect.
Deoarece toti ursii au in comun anumite caracteristici, putem crea un template Urs(), care defineste caracteristicile de baza si abilitatile fiecarui urs de pe planeta. Aceasta clasa Urs() poate fi utilizata pentru a crea un obiect $urs, proprietatile individuale ale unui Urs putand fi manipulate independent fata de cele ale altor obiecte de acelasi tip.
|