Articles

Recent Posts

Să o luăm de la bun început: PHP este un limbaj ciudat și urât. Nu este excepțional de rapid. Nu este frumos din punct de vedere sintactic. Nu este formulat în jurul unei opinii clare despre bunele practici de dezvoltare software. Și totuși, este cel în care scriu o mulțime de software. Întrebarea evidentă este: de ce? De ce să folosim PHP în prezent?

Există o mulțime de motive bune pentru aceasta, dincolo de preferințele personale idiosincratice. Aici este spațiul pentru a acoperi exact acest aspect. De ce este PHP limbajul meu preferat pentru dezvoltarea web?

Ce este PHP?

„Ce este un PHP?” Sau, mai frecvent, „ce este PHP?”. Pe scurt, PHP este un limbaj de programare făcut pentru web, construit pornind de la limbajul de programare C și care folosește tag-uri (sau sigle) idiosincratice asemănătoare HTML pentru a-și conține codul. Limbajul de programare PHP este utilizat în principal pe partea serverului, ceea ce înseamnă că rulează pe software-ul serverului dumneavoastră web, care de obicei va servi HTML vizitatorilor dumneavoastră.

PHP a însemnat inițial „Personal Home Page”. Deoarece acest lucru a constrâns destul de mult sensul și oportunitatea utilizării limbajului pentru uz general, limbajul înseamnă acum „PHP: Hypertext Preprocessor”. Acesta este ceea ce se numește un acronim recursiv (un nume care conține numele). Tocilarii le adoră.

Ce poate face PHP?

Pentru ce este folosit PHP? Practic, tot ceea ce doriți să faceți pe un server web, puteți face cu PHP. Să faci un blog? Da. Creați o aplicație software-as-a-serivce cu drepturi depline? Absolut. Scrieți un mic script pentru a procesa niște date în câteva secunde? PHP este excelent pentru asta. Scrieți un set complicat de scripturi care, din greșeală, devine o afacere software de succes? PHP este folosit astfel foarte mult.

Dacă nu aveți încredere în mine, site-ul PHP enumeră următoarele utilizări:

  • Scripting pe server
  • Scripting în linie de comandă
  • Scrierea de aplicații desktop

Nu sunt atât de sigur că aș încuraja ultimul punct, dar este posibil. Dar primele două sunt motive comune și bune pentru a folosi PHP în 2019.

Acest lucru duce la un fapt important și inevitabil…

PHP este peste tot

Există o mulțime de motive pentru a cunoaște și iubi PHP, dintre care probabil cel mai puternic și mai valabil este acesta: este folosit și rulează ÎNTOTDEAUNA unde web-ul o face. Micul dvs. cont de găzduire ieftin de 3 dolari pe lună vă poate permite să rulați o aplicație web în Python sau Ruby dacă cumpărați cu atenție. Dar cu siguranță va rula PHP. Acest lucru înseamnă că vă puteți baza pe el oriunde v-ați afla.

Symony is one of the reasons that people choose PHP

Și pentru că rulează peste tot și este ușor de început, o mulțime de software foarte popular este scris în PHP. WordPress este exemplul care este atât cel mai mare, cât și cel mai familiar pentru mine, dar instrumente precum Joomla, Drupal, Magento, ExpressionEngine, vBulletin (da, încă mai există), MediaWiki și multe altele, toate rulează PHP pe server.

Și există, de asemenea, mai multe cadre de aplicații PHP decât se poate scutura un băț: Symfony, Zend, Zend, Laravel, Aura, CakePHP, Yii și chiar și venerabilul CodeIgnitor. Cu siguranță că puteți face o listă de cadre web de o anumită lungime pentru aproape orice alt limbaj. Iar pentru limbajele web utilizate în mod obișnuit, cum ar fi Python, Ruby sau Node/JavaScript, s-ar putea chiar să puteți acumula o listă competitivă din punct de vedere numeric. Dar volumul pur și simplu al site-urilor care rulează PHP este imens.

WordPress se laudă cu mândrie că alimentează mai mult de 30% din internet. Nu trebuie nici măcar să aveți încredere în acest fapt pentru a vă da seama că o mare parte a internetului trebuie să folosească PHP, dacă acest fapt este măcar de conceput ca fiind adevărat.

PHP are câteva calități foarte bune

Easy Dynamism is Baked into PHP

PHP logo

PHP face redarea și programarea HTML mai ușor decât aproape orice alt limbaj. Așadar, este destul de simplu să schimbi HTML în PHP. Doar schimbați file.html în file.php, adăugați un pic de dinamism în interiorul unor tag-uri <?php și ?>. Majoritatea serverelor web vor fi deja configurate să se ocupe de restul pentru dumneavoastră. Este atât de simplu încât aproape oricine se poate apuca de treabă, fără a fi nevoie de o înțelegere mult mai mare a programării decât atât. Pentru că PHP este atât de prietenos pentru a vă tăia dinții cu el, o mulțime de coduri proaste sunt scrise în el.

După ce vă dați seama că majoritatea PHP-urilor proaste sunt scrise de programatori începători, cea mai mare parte a fricii și urii față de PHP pe care o întâlniți în lume provine de la o altă problemă esențială: PHP nu a avut niciodată un design măreț cu o idee vizionară despre motivul pentru care era limbajul perfect pentru serverul dvs. web. În schimb, este rezultatul unei colaborări largi printr-un proces deschis care servește ca un creuzet prin care orice idee bună – și câteva idei proaste – trebuie să treacă.

Orientarea pe obiecte cu un (mare) management al pachetelor este acum norma în PHP

Composer PHP language
Composer este un motiv excelent pentru a folosi PHP

Și ideile proaste pot trece prin acel creuzet. Cel mai popular exemplu este acela că PHP 5.3 – considerat, separat, ca fiind prima versiune modernă a PHP – a introdus instrucțiunea goto, care este în general fie luată în derâdere, fie considerată o sursă ușoară de erori.

Ceva la fel de rău în PHP care au rezultat din procesul prin care limbajul a crescut: orientarea pe obiecte a fost implementată pentru prima dată ca un concept defectuos și limitat, biblioteca standard este plină de nume și de ordonarea inconsecventă a parametrilor, iar (într-un exemplu care a primit recent destul de multă atenție) simbolul :: este apelat de către interpretor de către cei de limbă engleză de nepătruns: T_PAAMAYIM_NEKDOTAYIM.

Dar astăzi, OOP este pe deplin realizată în PHP. Puține limbaje au la fel de multă practică OOP asemănătoare cu Java ca PHP. Mai mult decât atât, spre deosebire de Java, PHP are un manager de pachete unic și foarte iubit, numit Composer. Acesta a fost foarte bun și, astfel, ușurința de a atrage în PHP alte biblioteci bine scrise și bine întreținute nu este deloc de neglijat.

PHP a devenit mult mai rapid

Dar aceste lucruri spuse, PHP evoluează în moduri interesante. Crește spre a deveni un limbaj orientat pe obiecte destul de complet, asemănător cu Java (la bine și la rău). Și, la fel ca Java, câștigă abstracțiuni ușoare pentru programarea funcțională – probabil cea mai populară în prezent. De asemenea, se dezvoltă un set de instrumente destul de grozave – PHP iubește Composer, și pe bună dreptate – și un efort lăudabil de a face ca toate aceste mari proiecte open source din PHP să funcționeze un pic mai bine împreună.

Oh, și nu ar trebui să uităm de actualul hotness: câștigurile de viteză pe care PHP le-a făcut în seria de versiuni PHP 7. Acest lucru este considerat pe scară largă ca fiind inițiat de HHVM-ul ieșit de la Facebook. Pentru o scurtă perioadă de timp, a existat riscul ca viteza HHVM să fractureze comunitatea PHP. Dar nu a fost așa. În schimb, PHP a devenit pur și simplu atât de rapid încât oamenii au uitat în mare parte că HHVM există.

PHP are o comunitate ENORMĂ; este ușor de învățat

Dacă vă decideți ce tehnologie nouă și interesantă să folosiți, un lucru care cred că primește adesea prea puțină atenție este cum este să vă acomodați cu limbajul. Cum este să înveți PHP? Tutorialele PHP sunt comune și adesea destul de bune.

Un dezavantaj al popularității PHP este că puteți găsi o pregătire nu prea bună de la persoane care nu știu suficient despre cum este cu adevărat utilizarea instrumentului. Sau care ultima dată urmau „cele mai bune practici” care erau de actualitate cu un deceniu în urmă. Dar, în general, acest lucru este suficient de rar încât nu cred că ar trebui să vă descurajeze. Să afli că o practică pe care ai folosit-o timp de câteva luni nu este grozavă este rar și nu este o problemă uriașă.

Comparări comune cu PHP

Mulți oameni noi în programare caută confruntări foarte generale ale limbajelor. Așa că, iată-le că vin. Toate limbajele pe care le voi scrie aici au următoarele trăsături în comun cu PHP:

  • Sunt open-source. Ceea ce înseamnă că puteți folosi limbajul de bază gratuit (fără costuri) și puteți vedea și înțelege programul de bază dacă doriți.
  • Sunt adesea folosite pentru dezvoltarea web. Destul de simplu, acestea sunt limbaje folosite foarte mult pentru dezvoltarea web. Unele sunt, de asemenea, utilizate pe scară largă în afara acestui loc, dar nu toate.
  • Sunt de nivel înalt, cu o tipare slabă și dinamică. Aceasta înseamnă că o variabilă își poate schimba tipul și că nu trebuie să definiți atunci când definiți o variabilă ce tip de lucruri (numere vs. șiruri de caractere vs. obiecte, etc.) va stoca. Acest lucru este în general favorizat pentru programarea web, dar nu în mod universal.
  • Comunitățile lor sunt de dimensiuni bune sau mai bune. Există o mulțime de limbaje interesante care au calitățile enumerate mai sus, dar care nu au o comunitate mare de practică. Le las deoparte aici.

De ce să folosiți PHP? De ce nu JavaScript?

Poate cel mai important limbaj cu care se poate compara PHP este JavaScript. Dezvoltarea modernă necesită ca fiecare proiect să folosească cel puțin un pic de JavaScript pentru dezvoltare și interactivitate pe partea clientului. Cu Node, a devenit relativ ușor să folosești JS și pe server. Ideea de a folosi același limbaj în mod „izomorf” pe client și pe server este foarte atrăgătoare.

Ca și PHP, JavaScript este un limbaj eclectic și uneori urât, cu o mulțime de negi și „gotchas”. Dar JavaScript a devenit extrem de rapid în ultimul deceniu, așa că argumentele în favoarea sa sunt reale. De ce să alegeți PHP și nu JavaScript? Aveți experiență sau aveți nevoie să folosiți biblioteci în PHP. În caz contrar, cred că JavaScript ar putea fi o alegere mai bună.

PHP vs Active Server Pages ((.Net) Core)

Active Server Pages și-a început viața ca un limbaj Microsoft cu sursă închisă pentru programarea web. Era destul de direct comparabil cu PHP, dar rula în medii Windows Server. Acesta a fost înlocuit de ASP.net. Care a fost înlocuit acum de ASP.NET Core. Ultimele două sunt acum limbaje open-source, așa cum este PHP. Iar eu, personal, nu am scris niciodată o lingură de ASP, în orice variantă.

Aș favoriza ASP dacă aș folosi și aș iubi serverele Microsoft. În caz contrar, dați-mi PHP, vă rog. Mărimea și scara comunităților nu sunt cu adevărat comparabile.

Ar trebui să folosesc Ruby sau PHP?

Ruby, în special Ruby on Rails, a fost foarte popular acum un deceniu. Ruby este încă un limbaj foarte iubit, care, în ochii mei, este mult mai elegant decât PHP. Acestea fiind spuse, comunitatea sa este mai mică. Și am senzația că Ruby a încetat să mai fie „limbajul la modă” (fiind depășit în acest rol de JavaScript). Ruby este frumos și există destui oameni buni la el, așa că nu l-aș evita din acest motiv. Dar angajarea de persoane deja familiarizate va rămâne mai dificilă decât să faci acest lucru în PHP. (Deși cred că abilitățile unui dezvoltator mediu de Ruby sunt probabil mai mari decât cele ale unui dezvoltator de PHP.)

Python vs PHP: Care este mai bun?

Ultimul limbaj care are sens într-o comparație unu la unu cu PHP este Python. Python este folosit în mult mai multe contexte decât dezvoltarea web (este, de asemenea, foarte popular pentru statistică și analiză de date). Este, de asemenea, unul dintre cele mai stabile și mai bine concepute limbaje existente, în consens popular.

Python (ca și Ruby, și JavaScript) este puțin mai greu de făcut să funcționeze pe un server web decât PHP. Dar este un limbaj mai drăguț și mai divers folosit decât PHP. Este unul dintre limbajele pe care m-aș gândi mult înainte de a-l favoriza în detrimentul PHP-ului, toate celelalte lucruri (acces la bibliotecă externă, acces la expertiză de angajare, etc.) fiind egale.

PHP vs Go? Scala? Java? etc?

Am menționat la început că există o mulțime de asemănări cu toate comparațiile directe anterioare de limbaje pe care le-am făcut. Dar dacă renunțăm la aceste constrângeri, există tone de alte limbaje pe care le-am putea compara. Deci, pentru a atinge pe scurt câteva:

  • Java este extrem de popular și foarte rapid. Este folosit pentru a construi aplicații Android, aplicații desktop și aplicații web. Totuși, nu este tipizat dinamic, ceea ce are garanții mai bune de performanță, dar o mai mică ușurință de programare web.
  • Go este un limbaj mai nou și în creștere susținut de Google. Este axat pe serverele web, dar cu un nivel puțin mai scăzut (mai mult ca C) decât PHP. Este rapid, dar comunitatea de practică este mai mică.
  • Scala este un limbaj popular care rulează pe JVM (compatibil cu Java) și care pare să fie încă în creștere în popularitate. Este proiectat mai elegant decât PHP, dar nu pot spune multe alte lucruri despre el cu încredere.

Din nou, asta este tot ce simt că am suficient context pentru a atinge. Dar există și mai multe opțiuni pe care le puteți lua în considerare. Dar acesta este sfârșitul alternativelor specifice pe care le voi lua în considerare la PHP.

Celegerea limbajului de programare este despre context

Date fiind aceste comparații, de ce să folosiți PHP? Am enumerat câteva dintre lucrurile care sunt rele la PHP și pe unele dintre ele le simt în mod regulat. Inconsecvența acului și a carul cu fân în funcțiile de căutare mă mușcă cel puțin o dată pe lună, atunci când fac rapid ceva fără autocompletare.

Pentru un proiect greenfield adevărat și complet, fără nevoia de a interopera cu vreun alt sistem, sau nevoia de a rula în vreun mediu arbitrar, fără expertiză existentă în echipă, m-aș gândi destul de profund înainte de a recomanda PHP. Python mă atrage cu adevărat în acest scenariu. Dar acestea sunt o mulțime de avertismente. Există motive foarte bune pentru ca până și un proiect proaspăt greenfield să fie scris în PHP.

Care limbaj web modern vă poate ajuta să realizați site-uri web și aplicații bune. Și fiecare dintre ele are caracteristici care nu sunt ideale. PHP, la fel ca oricare dintre ele, necesită să înțelegeți cu adevărat compromisurile pe care le are pentru dumneavoastră în proiectul dumneavoastră pentru a determina dacă are sau nu sens pentru dumneavoastră. Dar pentru mine, personal, continui să descopăr că este posibil să fii – așa cum a spus Keith Adams într-un discurs grozav – „șocant de productiv în PHP.”

Dacă aveți o echipă de programatori Python, scrieți-vă aplicația în Python. Dacă aveți un cofondator care se pricepe la Java, scrieți-vă SaaS-ul în acea limbă. Considerentele legate de personal ale software-ului ar trebui să fie întotdeauna mai importante decât cele legate de limbaje.