De la rutarea cererilor HTTP la accesarea bazei de date și la redarea interfeței cu utilizatorul, majoritatea aplicațiilor web au multe în comun unul cu celălalt. Mulți dintre ei permit vizitatorilor să se conecteze și este greu de imaginat o aplicație web fără trimiterea prin e-mail.
Un cadru software este o modalitate de a pune în aplicare această observație.
Prin extragerea trăsăturilor comune și a arhitecturii care stă la baza aplicației și prin gruparea acestora într-un șablon reutilizabil și prin colectarea de biblioteci, un cadru permite dezvoltatorilor să se concentreze asupra a ceea ce face ca proiectul lor să iasă în evidență.
De fapt, atunci când utilizați proiectul anterior ca pe o boilerplate în loc de a începe de la zero, deja utilizați un cadru ad-hoc. Cadrele PHP populare - cum ar fi Laravel, Yii sau Symfony - iau această abordare la concluzia sa logică punând un accent puternic pe proiectarea arhitecturii și instrumentelor cadrului și apoi pe punerea la dispoziția altor dezvoltatori pentru a le utiliza în proiectele lor.
Dar foloseste un cadru intotdeauna cel mai bun mod de a merge, sau uneori are sens sa inceapa de la zero folosind doar PHP?
Pentru a răspunde la întrebare, în acest tutorial vom analiza cinci avantaje și dezavantaje ale utilizării unui cadru PHP.
Să începem să ne uităm la modul în care folosirea unui cadru PHP vă poate ajuta în dezvoltarea aplicațiilor.
În startupurile de astăzi, bazate pe experimentări, pe prototipuri rapide și pe obținerea unui produs viabil minim în lume cât mai rapid posibil, viteza de dezvoltare poate fi ceea ce face sau vă poate distruge afacerea.
Utilizarea unui cadru PHP este o modalitate de a răspunde acestei cerințe.
Un cadru PHP bine proiectat selectează cele mai bune implementări pentru problemele obișnuite din comunitatea open-source și, pe baza lor, vă oferă o arhitectură de aplicații (în majoritatea cazurilor, bazată pe modelul Model-View-Controller) pentru a ghida dezvoltarea ta.
În acest fel, în loc să petreceți timp pentru a planifica arhitectura aplicației dvs. și pentru a evalua diferitele biblioteci disponibile, începeți să începeți de la o oase complet goale, șabloane și obțineți dreptul de a construi caracteristicile specifice aplicației dvs. Multe cadre PHP au, de asemenea, un instrument de linie de comandă pe care îl puteți utiliza pentru a genera cod și a salva mai mult din timpul dvs. prețios de dezvoltare.
În timp ce accelerați dezvoltarea, un cadru vă poate face și mai sigur: lucrați rapid, dar acest lucru nu se întâmplă prin hacking-ul dvs. folosind soluții rapide și murdare, ci prin folosirea celor mai bune practici dovedite și a componentelor gata făcute.
Soluțiile incluse într-un cadru PHP moderne sunt testate în mod continuu și revizuite și validate de către mai mulți dezvoltatori utilizând cadrul. Întrucât cadrele sunt open source, problemele de securitate și alte probleme pe care le-ați putea trece cu vederea în codul dvs. proprietăți se pot observa rapid și repede.
Acestea fiind spuse, este important să rețineți că folosirea unui cadru nu înseamnă că puteți uita totul despre practicile de securitate și de dezvoltare bună. Asigurați-vă că utilizați cadrul ca fiind destinat să îl utilizați, să-l păstrați actualizat și să vă faceți parte din lucruri precum validarea parametrilor - utilizând instrumentele cadrului, nu este atât de dificil.
Oferind o structură de sunet pentru aplicația dvs. și îndreptându-vă către cele mai bune practici și modele de dezvoltare software, un cadru PHP vă ghidează spre scrierea unui cod care este cuplat slab și se repetă cât mai puțin posibil. Cu alte cuvinte, este ușor de citit, testat, menținut și dezvoltat în continuare.
Practic, toate cadrele populare din PHP sunt orientate spre obiect și dezvoltate cu ajutorul testelor automate și a dezvoltării bazate pe teste.
Veți trebui totuși să vă faceți parte. Dar, în comparație cu începutul de la zero, un cadru și documentația acestuia care vă amintește de concepte și care vă împing spre folosirea lor vor ajuta cu siguranță.
Un alt mod în care utilizarea unui cadru ușurează menținerea aplicației dvs. prin intermediul componentelor partajate. Având în vedere că bibliotecile-cadru și ajutoarele sunt dezvoltate independent de cererea dvs., puteți să descărcați o mare parte din întreținerea aplicației dvs. pentru dezvoltatorii de cadre.
Într-un fel, este ca și cum ai avea o echipă de dezvoltatori care lucrează pentru tine, gratuit!
În calitate de dezvoltator, cunoașteți cuvintele și funcțiile pe care le aveți și le puteți folosi cu ușurință. Dar, pe măsură ce aduceți membrii echipei, situația se schimbă.
Fără cunoașterea deciziilor dvs. de proiectare și a documentației complete (să ne confruntăm cu aceasta: mai ales în lumea dezvoltării rapide, documentația este adesea o idee ulterioară), vor fi greu să-și înfășoare capul în jurul codului aplicației.
Folosirea unui cadru PHP vă va ajuta să faceți mai ușor dezvoltatorii noi pentru a începe să lucrați la proiect. Sunt șanse ca aceștia să fie deja familiarizați cu cadrul și să-și poată pune toată atenția în înțelegerea specificului aplicației. Și chiar dacă cadrul este nou pentru ei, documentația, tutorialele online și modelele familiare de design îi vor ajuta să se ridice la viteză cu un efort minim.
Toate acestea, în timp ce puteți continua să lucrați la aplicație, mai degrabă decât să îi predați dezvoltatorilor căile de gândire.
În sfârșit, un avantaj semnificativ al utilizării unui cadru PHP provine din comunitățile active de dezvoltatori și utilizatori care se adună în jurul lor.
Toate cadrele majore atrag contribuabilii cu surse deschise care, pe lângă lucrul la cadrul însuși, dezvoltă widget-uri suplimentare, biblioteci și componente helper pentru alții să includă în aplicațiile lor. Alți contribuabili scriu tutoriale și cărți sau creează videoclipuri pentru a explica aspectele legate de modul în care folosesc cadrele în proiecte reale.
Ca parte a unei astfel de comunități de dezvoltatori, veți deveni dezvoltator, învățați rapid și aplicând ceea ce învățați pentru dezvoltarea aplicațiilor.
Și dacă sunteți atât de înclinat, puteți să vă dați înapoi și să participați la proiectele cu sursă deschisă în orice mod care vă este natural și vă îndeplinește.
Acum, că am văzut cum folosirea unui cadru PHP vă poate ajuta în dezvoltarea dvs., să aruncăm o privire la dezavantajele și de ce merge fără unul ar putea fi uneori opțiunea mai bună.
În comparație cu rularea unui script PHP simplu, un cadru PHP adaugă întotdeauna complexitate și cheltuieli generale sub formă de clase și biblioteci încărcate înainte ca codul să devină chiar apelat. Diferența poate fi semnificativă în scenariile rapide și API-urile cu un set limitat de funcționalități care trebuie să funcționeze rapid.
În majoritatea aplicațiilor web, totuși, implicațiile privind eficiența unui cadru au mai mult de-a face cu modul în care îl folosiți decât cadrul însuși. De exemplu, în timp ce o implementare Active Record este o metodă accesibilă pentru baza de date, nu are sens să o utilizați în locuri în care trebuie să lucrați pe mai multe rânduri în baza de date simultan.
Deci, acest lucru se limitează la cunoașterea nevoilor dvs. de aplicare, dar, de asemenea, nu vă permite să fie atașat la un mod specific de utilizare a acesteia. Uneori, chiar și atunci când se lucrează cu un cadru, este logic să se împiedice și să se scrie ceva din cod la un nivel de abstractizare inferior.
Ideea unui cadru PHP este de a fi o soluție generală pentru cerințele recurente pe care majoritatea dezvoltatorilor le vor confrunta în dezvoltarea unei aplicații web. Dar unde ar trebui să trasăm linia în ceea ce să includem în cadrul și ce să părăsim pentru aplicațiile sau pentru alte programe de completare pentru a implementa?
Potrivit unor dezvoltatori, aici se întâmplă multe cadre.
Creatorul PHP, Rasmus Lerdorf, a spus:
"Nimeni nu are o problemă generală. Toată lumea are o problemă foarte specifică pe care încearcă să o rezolve. Și un cadru de scop general, deși poate rezolva acest lucru, rezolvă de obicei acest lucru într-un fel încât să obțineți atât de multe alte lucruri de care nu aveți nevoie. Aceasta se încheie la fiecare cerere. "
Din această cauză, dacă decideți să utilizați un cadru, este important să vă asigurați că alegeți una care să se potrivească nevoilor aplicației dvs..
În timp ce cele mai multe cadre se bazează pe încărcarea leneș și nu vor include părțile cadrului pe care aplicația dvs. nu le folosește, complexitatea adăugată va continua să existe, ceea ce va duce la tinkering inutil în eliminarea funcționalității care a venit cu cadrul dar nu Nu e nevoie.
În timp ce un cadru PHP vă impulsionează spre un cod bun, nu este o garanție pentru acesta. Dacă lucrați cu un cadru fără să-l înțelegeți și cu modelele de design din spatele lui, veți ajunge cel mai probabil într-o mizerie mare și structurată.
Pentru cineva care este deja familiarizat cu aceste principii de proiectare, din alte cadre sau proiecte, curba de învățare va fi relativ scurtă. Pentru un dezvoltator cu mai puțină experiență, învățarea va dura mai mult. Să nu mai vorbim de stăpânirea cadrului.
Deci, dacă vă grăbiți - și proiectul dvs. este mic - este posibil să nu fie momentul să începeți să învățați un nou cadru. În schimb, luați în considerare utilizarea unui micro-cadru sau chiar pornirea de la zero și utilizarea unor biblioteci cu care vă cunoașteți.
Apoi, țineți-vă timpul să învățați un cadru PHP complet atunci când programul dvs. permite.
Folosind un cadru software, aplicația dvs. dezvoltă aplicația la un nivel superior de abstractizare. Acest lucru este de design, și, de obicei, un lucru bun. Cu toate acestea, este bine să înțelegeți că și ea poate duce la probleme.
Deși multe părți ale șablonului cadrului sunt menite să fie personalizate, nucleul cadrului și bibliotecile acestuia sunt ca o cutie neagră pe care o utilizați, dar nu aveți prea mult control asupra acesteia. Puteți sugera îmbunătățiri, dar, în cele din urmă, depinde de dezvoltatorii din cadrul cadrului să decidă dacă vor include această schimbare sau nu.
De asemenea, dacă începeți să utilizați un cadru înainte de a înțelege în întregime limbajul PHP în sine, puteți confunda funcțiile cadrului cu caracteristicile lingvistice - și se va sfârși prin utilizarea funcționalității cadrului chiar și atunci când PHP simplu ar fi o alegere mai bună.
Un cadru este întotdeauna o dependență externă pentru codul dvs. de aplicație controlat de altcineva decât dumneavoastră și echipa dvs. Deși acest lucru nu este de obicei o problemă, este ceva de luat în considerare dacă software-ul pe care îl construiți este o parte esențială a afacerii dvs..
Întrebați-vă ce veți face dacă dezvoltarea cadrului va fi abandonată sau se va muta într-o direcție pe care nu doriți să o urmați.
O modalitate bună de a atenua acest risc este utilizarea unui cadru fiabil și popular, cu o comunitate activă de dezvoltatori și utilizatori. Dar chiar și atunci, este ceva de gândit: sunt avantajele utilizării unui cadru suficient de mare pentru a face ca riscul să fie luat?
Un cadru PHP modern este un instrument puternic în pieptul unui instrument de dezvoltare al software-ului: vă poate economisi mult timp și efort și vă poate oferi liniște în timp ce dezvoltați aplicația dvs. PHP. Amintiți-vă că acest lucru nu ar trebui să înlocuiască mai întâi baza de învățare PHP!
Cheia din concluzia de mai sus, cu toate acestea, este selectarea instrumentului potrivit pentru lucrare. Fiecare proiect este diferit, și chiar un cadru care este perfect pentru un proiect ar putea să nu fie corect pentru următorul. Du-te pentru simplitate și întrebați-vă dacă un cadru complet este potrivit pentru proiect sau dacă folosiți un micro-cadru cum ar fi Lumen ar putea fi o soluție mai bună.
Pornind de la zero folosind vanilie, PHP este rareori cea mai bună opțiune, dar acest lucru este valabil și atunci când se dezvoltă o aplicație foarte simplă (cum ar fi un site fără multă interactivitate) și amintiți-vă că puteți întotdeauna să o extindeți folosind Composer pentru a alege bibliotecile alegere.
Atunci când selectați un cadru, asigurați-vă că cadrul pe care îl alegeți este dezvoltat și susținut activ și respectă practicile de sunet software. În acest fel, vă protejați în viitor aplicația, asigurându-vă că cadrul de bază nu va suferi o moarte liniștită.
Și, în sfârșit, chiar dacă decideți să nu utilizați unul, este o idee bună să vă familiarizați cu unul sau mai multe cadre PHP moderne. Studiind-le este o modalitate excelentă de a învăța și de a îmbunătăți ambarcațiunile dvs. în dezvoltarea de software și de a vă ajuta să rămâneți pe partea de sus a lumii în evoluție a dezvoltării PHP.