Introducere in Clase PHP de Mihai Stan
Cand incepi sa lucrezi cu PHP, iti dai seama
ca sunt multe locuri in care trebuie sa scrii aceasi bucata de cod. Unii dintre voi probabil
s-au prins ca aceasta se poate rezolva cu o functie, asta economisind ceva timp atunci cand veti
vrea sa refolositi codul. Pur si simplu declarati o functie si ii spuneti acelei functii ce
informatie vreti sa foloseasca. Metoda este similara celei de mai jos:
function
Functia_Mea($variabila){
// Foloseste $variabila aici :
echo $variabila;
}
Si apoi doar apelezi functia atunci cand ai nevoie de ea:
Functia_Mea("Salut, bine ai venit pe site"
);
si functia va afisa la iesire "Salut, bine ai venit pe site
"
Ei bine, dupa un timp se vor aduna prea multe functii si te vei aglomera.
Folosind Clase PHP, poti incepe sa pui acele functii in niste "cutii" unde sunt stocate si folosite.
Clasele PHP s-au dovedit a fi foarte valoroase, atunci cand sunt gandite si cand e scris codul bine.
Va voi face o introducere in Clase si va voi da cateva exemple unde pot fi folosite. Sper ca la sfarsitul
acestui tutorial te vei gandi sa implementezi niste clase proprii economisind astfel timp in viitoarele
proiecte.
Dar haideti sa lasam vorbaria . Dati click pe pagina urmatoare si sa incepem
sa ne stocam functiile in interiorul Claselor.
Structura Clasei
Cand va ganditi la clase v-as incuraja sa va ganditi
ca la "codul din spate". Codul va fi stocat in spatele site-ului, iar in fata va fi un bloc de
cod foarte usor de inteles. Voi pune toate rutinele complicate in clasa ta, iar scriptul care foloseste
acea clasa va fi mai usor de inteles pentru ca va avea un cod "curat". Acesta nu este singurul motiv pentru care
poti folosi clasele, dar este motivul pentru care eu le folosesc.
OK, sa aruncam o privire pe clasa: <? class
Clasa_mea{ var
$email;
//
folosim o functie fara variabile function verifica_email(){
if(ereg("^.+@.+\..+$", $this->email))
return
(true); else
return
(false); }
// Folosim o functie cu variabile
function scoate_imag($cevahtml){
$cevahtml = preg_replace("/(<img)(.*?)(>)/si", "", $cevahtml);
return $cevahtml; } } ?>
Clasa de mai sus o fost compusa din 2 functii simple. Vom analiza functiile pentru a
intelege despre ce este vorba aici.
Mai intai trebuie sa declaram o clasa: class Clasa_mea{
Vom crea niste variabile ce pot fi folosite in oricare din functiile din interiorul clasei
fara sa trebuiasca sa fie specificate pentru fiecare functie. Vom face asta prin
"var $nume_var" ,priviti mai jos pentru exemplul $email pe care il vom folosi.
var
$email;
In continuare, sa analizam prima functie. Functia aceasta este valideaza mail-ul introdus de utilizator.
Cauta text in ambele parti ale simbolului "@" care este structura unei adrese de email. Aceasta functie va prelua
variabila $email definita in scriptul nostru care apeleaza clasa si verifica validitatea email-ului. Daca adresa
de email trece de aceasta verificare si este o adresa valida, vom returna "TRUE" ,altfel vom returna "FALSE" .
Voi explica asta putin mai tarziu.
// folosim o functie fara variabile
function verifica_email(){
if(ereg("^.+@.+\..+$", $this->email))
return
(true); else
return
(false); }
Uitandu-va la functia de mai sus, ati remarcat
ca am folosit "$this->email" $this->
e un constructor special indica in interiorul clasei catre o variabila sau o alta functie.
La inceput am definit var $email ,acum avem $this->email.
Veti vedea cum sa atribuiti o valoare lui
$this->email cand vom folosi "efectiv" scriptul ce apeleaza clasa .
Nota: puteti de asemenea folosi in interiorul unei functii dintr-o clasa,
o alta functie ce se afla in aceeasi clasa. Doar introduceti
$this->numele_functiei($vars); si functii din interiorul
aceleiasi clase se pot folosi reciproc.
Pentru a va da un exemplu ca puteti pune aproape orice doriti
in interiorul unei clase, am facut aceasta clasa "cu scop general" ce poate fi utilizata in mai multe scopuri.
Mai jos veti vedea o functie pe care am introdus-o in aceasta clasa, functie care elimina tag-urile unei imagini
dintr-un string(sir de caractere). Am vrut sa va arat aceasta clasa si pentru ca este o metoda diferita de a apela
functia, aceasta functie va accepta o variabila ca parametru si trebuie sa aiba acea variabila definita atunci cand
o apelezi. Voi explica si acest lucru mai incolo. Iata functia mai jos:
// Folosim o functie cu variabile
function scoate_imag($cevahtml){
$cevahtml = preg_replace("/(<img)(.*?)(>)/si", "", $cevahtml);
return $cevahtml; }
Acum, inchidem clasa noastra si suntem gata s-o folosim!
}
Sa numim acest fisier:
"clsClasa_Mea.php" si sa vedem cum il vom folosi in pagina urmatoare.
Folosirea acestei Clase in Scripturile voastre PHP
Primul lucru pe care trebuie sa-l facem este sa includem clasa. Nu este mare lucru,
doar includeti-o folosind:
<? include
"Clasa_Mea.php";
Acum putem incepe distractia :) Avem clasa noastra inclusa in script si trebuie sa
initializam un obiect pe care sa-l atribuim unei variabile. Iata cum se face:
$clasa_mea = &New Clasa_Mea;
Am creat un obiect numit $clasa_mea si acum putem accesa elementele din interiorul clasei
Clasa_Mea pe care am creat-o mai devreme. Astea fiind facute, avem variabila "$email" ce sta degeaba in Clasa_Mea,
asa ca ii vom atribui o valoare:
$clasa_mea->email
= "tu@undeva.com";
Tineti minte ca puteti face: $clasa_mea->email =
$_POST['email']; sau orice vreti cu ea.
Sa rulam functia verifica_email in interiorul clasei Clasa_Mea:
$verifica_email =
$clasa_mea->verifica_email();
if(!$verifica_email){
echo "Adresa de email nu este valida!"; } else { echo "Adresa de email este valida!"; }
Tot ce am facut este sa atribuim o variabila functiei verifica_email()
si apoi am facut niste verificari de erori pe baza acelei variabile.
Tineti minte ce a spus mai devreme, daca verifica_email returneaza TRUE , adresa continuta in variabila
$email pe care i-am spus s-o verifice a trecut testul, daca nu a trecut testul va returna FALSE.
Privind instructiunea if de mai sus, vei vedea ca daca un "!" sau "Eroare" este detectat pe sirul de caractere
din $verifica_email ,vom afisa "Adresa de email este valida!".
Haideti sa ne uitam cum folosim functia scoate_imag. Intai vom crea un string cu
HTML in interior.
$html_vechi=
'<strong>Am o imagine aici:
<img src="/imaginea_mea.jpg" height="100" width=" 200"
>';
Acum ca avem $html_vechi si stim ca are o imagine in interiorul HTML-ului,
sa scoatem acea imagine afara si sa returnam rezultatul:
$html_nou =
$clasa_mea->scoate_imag($html_vechi);
echo "Aici este html-ul vechi
$html_vechi <br /><br />"; echo "Aici este
html-ul nou $html_nou <br /><br />";
Cand veti privi $html_vechi si $html_nou, veti vedea ca
imaginea a fost eliminata cu succes.
Daca ai inteles ce s-a intamplat pana acum, felicitarile mele,
tocmai ai invatat notiunile elementare ale claselor! Daca nu, te sfatuiesc sa
mai citesti acest tutorial inca o data. Il vei intelege pana la urma.
Asa cum am spus mai devreme, clasele s-au dovedit a fi foarte eficiente.
Ele sunt calea catre "Object Oriented Programming" sau "Programarea Orientata pe Obiecte" - OOP.
Cu OOP puteti economisi foarte mult timp si puteti crea o arhiva de obiecte sau clase pe care le puteti folosi mereu.
Referinte:
Iata cateva link-uri pe care le puteti vizita cand va dezvoltati clasele:
PHP Manual - Classes and Objects PHP Manual - Extends PHP Manual - Exending Classes Using Parents PHP Manual - Classes using :: operator PHP Manual - Serialize and Unserialize Objects
Inchei aici aceasta Introducere in Clasele PHP.
Toate cele bune !
Sus |