Programarea orientată pe obiecte în PHP

În acest articol veți învăța conceptele fundamentale de bază ale programării orientate pe obiecte. Și anume:

  • Ce este de programare orientat-obiect
  • Ca o programare orientată spre obiect poate ajuta să scrie script-uri mai bune PHP
  • Unele concepte de bază, inclusiv clase, obiecte, metode și proprietăți
  • Cum de a începe să scrie orientat pe obiect de cod PHP.

Gata pentru a explora lumea de site-uri PHP? Să începem!

Ce este de programare orientat-obiect?

Dacă ați creat vreodată și folosit propriile funcții în PHP, utilizați un stil de programare cunoscut sub numele de programare procedurală.

În programarea procedurală, creați de obicei o structură de date - numere, siruri de caractere, tablouri, și așa mai departe, care sunt apoi transmise la funcția. O funcție folosind datele, ceea ce face anumite sarcini și returnează rezultatul.

Programarea orientată pe obiecte, OOP sau combină structura și funcțiile de date într-o singură unitate, care se numește un obiect.

De ce să folosiți o programare orientat-obiect?

Programarea procedurală și orientată obiect sunt două moduri diferite de a face același lucru. Nici unul dintre stilurile de programare nu poate fi numit mai bine decât celălalt - este o chestiune personală - și sunteți liber să se amestecă și se potrivesc programarea procedurală și orientate-obiect într-un singur script PHP.

Cu toate acestea, există unele avantaje pe care le puteți oferi OOP ca un dezvoltator:

  • Reutilizare: Obiectul este un obiect logic care are un set de proprietăți și metode și poate interacționa cu alte obiecte. Obiectul poate fi complet independent, sau poate depinde de alte obiecte. Obiectul este creat de obicei pentru a rezolva problemele specifice ridicate. Prin urmare, atunci când alți dezvoltatori se confruntă cu probleme similare, ele se pot conecta în clasă la proiectul dumneavoastră și de a folosi fără teama că se va rupe procesul de dezvoltare a acestora. Acest lucru evită uscat, ceea ce înseamnă nu te (non-recurente) Se repetă. În programarea procedurală, sau modulare, reutilizarea este posibilă numai în total.
  • Refactorizare: Când trebuie să într-un proiect de a utiliza Refactorizare OOP vă oferă beneficii maxime, deoarece toate obiectele sunt mici și conțin elemente de proprietățile și metodele sale ca parte a ei înșiși. Prin această utilizare este relativ ușor de refactor.
  • Extensibilitate: Dacă aveți nevoie pentru a extinde funcționalitatea proiectului, puteți obține rezultate mai bune cu ajutorul OEP. Una dintre principalele funcționalități ale OEP este extensibilitate. Puteți utiliza facilitățile refactoring care ar adăuga funcționalitate. Lucrând pe ea, puteți salva în continuare obiectul vechi este compatibil - astfel încât să puteți lucra foarte bine cu vechiul cod. Sau puteți extinde facilitatea și de a crea un sistem complet nou, care va conține toate proprietățile și metodele obiectului părinte din care unul nou, și apoi adăugați noile caracteristici. Aceasta se numește „moștenire“ și este o caracteristică foarte importantă a OEP.
  • Suport: codul orientat-obiect este mai ușor de întreținut deoarece urmează o convenții foarte rigide de cod scris și este scris în forma samopoyasnyayuscheysya. De exemplu, atunci când un dezvoltator adaugă, reciclează sau cod de depanare-l, se poate găsi cu ușurință structura internă a codului și să păstreze codul din timp în timp. Mai mult decât atât, atunci când sunt înconjurate dumneavoastră de o echipă de dezvoltatori OOP poate fi cea mai bună soluție, deoarece aveți posibilitatea să distribuiți codul între membrii echipei, după pauză-l în bucăți mici. Aceste piese mici pot fi concepute ca entități separate, astfel dezvoltatorii pot opera aproape independent unul de celălalt. În cele din urmă se unească toate piesele într-o singură aplicație nu va fi ușor.
  • Eficiență: Ideea OEP a fost, de fapt, conceput pentru a spori eficiența și de a facilita procesul de dezvoltare. Mai multe modele de design, care sunt concepute pentru a crea o mai eficientă și un cod bun. Mai mult decât atât, în OOP, puteți reflecta asupra deciziilor tale într-o formă mai convenabilă decât o abordare procedurală. Pe măsură ce rupe problema in probleme mai mici și veți găsi o soluție pentru fiecare dintre ele separat, problema mare este rezolvată de la sine.

Unele concepte de bază

Înainte de a trece la scrierea de cod orientat pe obiect în PHP, este important să se înțeleagă patru concepte de bază ale OOP: clase, obiecte, proprietăți și metode.

Clasa este baza pentru obiecte. Această bucată de cod care definește:

  • tipuri de date care vor fi stocate obiect
  • funcții care vor conține obiectul.

Obiectul este un tip special de variabile, care este creat dintr-o clasă și care conține informații (proprietăți) și funcții (metode) pentru prelucrare. Obiectele sunt numite - instanțe ale clasei. Puteți crea orice număr de obiecte independente de aceeași clasă, chiar dacă acestea se află în apropiere.

Proprietatea - este aceeași variabilă în interiorul obiectului. Proprietățile obiectelor sunt strâns legate de acest subiect. Deși toate obiectele create din această clasă au aceleași proprietăți ca și proprietățile unui singur obiect poate avea valori diferite de proprietățile unui alt obiect.

Funcțiile sunt definite în clasă și sunt utilizate în obiectul - metodele numite. În multe feluri, ele sunt funcții obișnuite - le puteți da valoare, ele pot conține variabile locale și se pot întoarce valori. Cu toate acestea, metodele de obiect operează în mod obișnuit, în principal, cu proprietățile obiectului.

Cum de a crea clase în PHP

Acum, că știți ce clase, obiecte, proprietăți și metode, este timpul pentru a ajunge la afaceri și de a crea mai multe clase și obiecte folosind cod PHP.

În primul rând, să ne uităm la crearea unei clase. Sintaxa de bază pentru crearea unei clase în PHP, după cum urmează:

Ca un exemplu, creați un membru de clasă

Este destul de simplu! Desigur, această clasă nu face nimic până când vor fi adăugate proprietățile și metodele clasei. Cu toate acestea, acest cod creează o clasă validă și utilizabilă în PHP. O bună practică de programare este crearea de clase în fișiere separate cu același nume ca și numele clasei. De exemplu, ai putea salva acest cod într-un fișier numit Member.php

Cum de a crea un obiect în PHP

Obiectele create dintr-o clasă folosind un nou cuvânt cheie:

Acest cod creează un obiect bazat pe classname de clasă. Pentru a putea accesa nou creat este necesar pentru a menține obiectul în variabila. De exemplu, să creeze un obiect nou membru și depozitați-l în elementul $ variabila:

Putem crea, de asemenea, un alt obiect din aceeași clasă:

Chiar și atunci când le-am creat din aceeași clasă membru două obiecte, membru $ si $ member2 acestea sunt independente unul față de celălalt.

Adăugarea de proprietăți în clasa

Acum, că știm cum să creeze clase și obiecte, să ne uităm la adăugarea de proprietăți. Exista 3 tipuri de proprietăți care pot fi adăugate la clasa:

  • Public - vă permite să accesați proprietățile de oriunde
  • Privat - permite accesul la proprietăți din această clasă.
  • Protejat - permite accesul la proprietățile numai clasa curentă și o clasă care moștenește de la clasa curentă

Pentru a adăuga o proprietate clasei, trebuie să scrie cuvinte cheie publice, private sau protejate, și apoi numele proprietății:

Să adăugăm la proprietatea publică $ numele nostru de utilizator membru al clasei. care va conține numele de utilizator:

Rețineți că setați valoarea proprietății de $ username - string gol. Acest lucru înseamnă că, atunci când vom crea un nou membru obiect, $ proprietate numele de utilizator la etapa inițială va fi stabilită această valoare.

Accesarea proprietăților obiectelor

Pentru a avea acces la o proprietate a unui obiect cu ajutorul -> operator. și anume:

Să încercăm să creeze o nouă clasă membru, adăugați proprietatea $ numele de utilizator, și apoi să creați o instanță a clasei și să încerce să stabilească și să ia în considerare valoarea de $ username:

Dacă executați codul de mai sus, atunci se va afișa valoarea de $ username = „Fred“. După cum puteți vedea, puteți accesa proprietățile unui obiect, precum și la variabilele uzuale - puteți obține valorile lor, și le puteți atribui valori noi.

Adăugarea metodelor unei clase

Așa cum am menționat anterior, metodele sunt caracteristicile obișnuite care fac parte din clasa. Metodele sunt la fel ca funcțiile normale, folosind cuvinte cheie - funcție. Singura diferență este că este posibil să se stabilească un domeniu de aplicare, la fel ca proprietăți, folosind cuvinte cheie publică, private sau protejate

Ca și în proprietăți, metodele publice pot fi apelate de oriunde, metode particulare pot fi apelate numai prin alte metode din clasa, și metodele protejate pot fi apelate folosind metodele actuale ale clasei și o clasă care moștenește metodele clasei curente

Să încercăm să adăugați câteva metode de membru nostru de clasă. Vom adăuga:

Rețineți că vom folosi un cuvânt cheie nou în metodele noastre: $ asta. În contextul metodei de obiect, variabila $ speciala aceasta se referă la obiectul însuși. Cu $ variabilă această metodă poate avea acces la oricare dintre celelalte proprietăți și metode în obiect.

De exemplu, datele de conectare () metoda accesează o proprietate a unui obiect $ loggedin utiliza următoarea intrare: $ this-> loggedin

Din moment ce am stabilit proprietatea $ loggedin cuvinte cheie privată. accesul la acesta poate fi obținut numai prin metode: conectare (), logout (), isLoggedIn ().

Utilizarea metodelor

Pentru a apela o metodă a obiectului pe care doriți să utilizați -> operatorul:

Acesta funcționează la fel ca un apel de funcție normală. Puteți trece argumente în paranteze (cu condiția ca metoda poate lua argumente), iar apelul metoda poate reveni, de asemenea, o valoare pe care le puteți utiliza.

Acum, că am adăugat câteva metode la clasa noastră membre, să încercăm să le folosească:

Acest cod afișează următoarele valori:

Fred este deconectat
Fred este autentificat
Fred este deconectat

Iată cum acest script:

1. După definirea clasei membre, vom crea un obiect nou membru și păstrați într-un membru $ variabila. De asemenea, am stabilit noua valoare a proprietății $ username - Fred

3. Apoi, noi numim elementul $ obiect de conectare (). Această metodă setează proprietatea $ $ loggedin membru obiect la TRUE

4. Acum, pe care o numim isLoggedIn () metoda din nou, se returneaza true, astfel încât ecranul afișează: „Fred este conectat“.

5. Apoi vom apela metoda logout () obiect membru $, care stabilește proprietatea $ loggedin $ object membru la FALSE

6. În cele din urmă, noi numim isLoggedIn () metoda pentru a treia oară. De data aceasta el se întoarce FALSE, pentru că proprietatea este de $ loggedin a fost setat la FALSE de logout (). Se afișează: «Fred este deconectat»

În acest articol am acoperit elementele de bază ale programării orientate pe obiecte în PHP. Am examinat următoarele subiecte:

1. Ce este de programare orientat-obiect

2. Ce clase, obiecte, proprietăți și metode

3. Cum de a crea clase și obiecte în PHP

4. Cum de a crea și de a folosi proprietăți în PHP

5. Care este domeniul de aplicare a proprietăților și a metodelor în OOP

6. Cum de a crea și de a folosi metode în PH

Ceva care este menționat în acest articol este doar minimul necesar pentru continuarea studiilor de OOP în PHP.

Evaluează acest articol:

Programarea orientată pe obiecte în PHP

Interesat de dezvoltarea site-uri web în PHP folosind modelul MVC?

Vă recomandăm să vă familiarizați cu curs „PHP și CodeIgniter de la zero: crearea de dinamice Web-situri“.

În timpul instruirii vei primi toate cunoștințele și abilitățile necesare pentru a crea puternice PHP-site-uri, fără a fi nevoie să înțeleagă toate subtilitățile limbii!