Scrie despre OOP în PHP unele articole mi-a făcut ceea ce nu am putut găsi articolele mele de satisfacție cu privire la acest subiect. Există manuale sau articole oficiale uscate și plictisitoare, care stabilesc, în esență, același manual numai cu exemple mai detaliate, precum și pe net o mulțime de informații învechite cu privire la acest subiect.
De ce am nevoie de PLO?
Popularitatea și ușurința php conduce la faptul că cea mai mare parte acest cod este scris în limba are o calitate foarte dubioasă. Dupa ce a petrecut destul de un pic de timp liber pentru studiul limbii și având o mică persistență, chiar dacă nu sunteți familiarizați cu programarea, puteți începe să scrie aplicații web. Pe măsură ce învățați php le puteți face mai funcționale. Cu toate acestea, dacă nu ați dat proiectarea de timp, introducând în scurt timp caracteristici suplimentare la cerere, depanare și testarea acestuia este complicată, și pentru a adăuga unele lucruri mici pe care trebuie să strânge tot mai mult cantitatea de cod, ea devine tot mai confuz și frustrant, alți dezvoltatori, familiarizați cu dvs. cod va jura și greu să-l critice.
Deci, care-i treaba? De ce vă bucurați de proiectul de expansiune ar putea transforma atât de repede într-o grămadă de cod de spaghete cu un nor de bug-uri? Faptul este că începători scrie cod care nu numai ceea ce i se cere într-o situație specifică și nu prevede efectuarea modificărilor. Această abordare nu este acceptabilă, în special pentru aplicații Web, care în mod inevitabil, va trebui să crească și să se dezvolte în cazul în care, desigur, va fi popular. Mai devreme sau mai târziu vei, și poate alți dezvoltatori, va fi necesar să se întoarcă la codul scris anterior și de a face modificări, și cu atât mai ușor va fi de a face, cu atât mai rapid aplicația va evolua și să câștige popularitate.
În plus față de PLO prevalente așa-numitele modele de design - solutii recurente Șabloanele probleme de programare. Folosind aceste template-uri vor permite în primul rând trebuie să cunoască soluția la o problemă înainte de a se naște, iar cea de a doua soluție la problema va fi apreciat de către alți dezvoltatori care sunt familiarizați cu șablonul folosit.
concepte de bază
OOP - o metodologie (abordare metoda) Programare conform căreia produsul software este reprezentat sub formă de obiecte care interacționează. Nu sunt de acord cu faptul că OEP a întotdeauna implică utilizarea de clase - js, cum ar fi limbaj orientat pe obiect, dar nu există clase. Cu toate acestea, atunci când sunt aplicate la PHP OEP întotdeauna implică utilizarea de clase.
Un obiect este în general înțeleasă într-o anumită entități numite stocate în datele în sine, și având propriului comportament. Comportamentul obiect și structura datelor pe care le deține, precum și modul de accesare a acestor date, descrie clasa căreia îi aparține acest obiect. O clasă este o descriere a ceva similar, obiecte legate, care sunt, de obicei stocate același set de date și care au același comportament. Un obiect care aparține unei anumite clase, numită instanță sa. Ca un exemplu, o clasă care descrie utilizatorul. Această clasă descrie structura datelor care vor fi stocate în ele fiecare instanță a acestei clase. Să presupunem că aceste date vor fi date de conectare și o parolă. obiect de clasă, care deține un anumit valori nume de utilizator și parola vor fi o instanta a acestei clase.
Trei PLO balenă
OOP se bazează pe trei principii, care sunt adesea numite cele trei balene ale OEP, este:
Încapsularea - acesta este principiul conform căruia datele sunt combinate și stocate în obiecte, precum și protejate împotriva utilizării abuzive.
Ați putea găsi ciudat ca programator în sine este limitat la dreptul de a citi sau modifica datele, dar este foarte adesea cazul în care, înainte de sfârșitul liniei și de a înțelege modul în care codul este foarte dificil și, prin urmare, ar trebui să evite situațiile în care sunt în mod evident greșit.
Rezultatul poate fi o încercare de a atribui o clasă de vârstă negativă om exemplu, ca un exemplu de utilizare abuzivă a datelor. Firește, că o astfel de încercare de la un cod bine scris nu reușește, în caz contrar, principiul încapsulare este rupt.
În practică, principiul încapsulării este că metodele de acces la date care pot filtra sau a ajusta aceste valori pe care încercăm să le schimbe.
Succesiuni - un proces de dobândire a unui tip de obiect (clasă) a unora dintre proprietățile unui alt tip de obiect.
Se întâmplă adesea ca descrierea unui tip de obiect care este clasa, complet se încadrează în descrierea unui alt tip de obiect. De exemplu, o clasă care descrie administratorul, iar utilizatorul este capabil să descrie, cu excepția faptului că utilizatorul nu are drepturi de acces. În acest caz, este logic să facă o clasă care descrie administratorii, un descendent al clasei, care descrie utilizatorii. În clasa care descrie Adminii nu trebuie să descrie datele și comportamentul, care sunt deja descrise în clasa „utilizator“, avem nevoie să descrie numai datele care va fi responsabil pentru acordarea drepturilor de acces. În acest caz, clasa de „utilizator“ este clasa strămoșul „admin“, care poate avea propriul său urmași, și cea a lui, etc. lanț de moștenire poate fi arbitrar lung. De asemenea, un părinte poate fi câțiva descendenți, fiecare dintre care este dobândi pe deplin proprietățile sale mamă și adaugă-le ceva din propria lor, sau moștenire este lipsită de sens.
Polimorfismul - este de a utiliza același nume metodă pentru rezolvarea mai multor sarcini similare.
La această teorie plictisitoare suficient. Data viitoare voi scrie despre cum să descrie clasele și de a crea instanțe ale clasei pentru a avea acces la date (câmpuri), și metodele de instanță.