TSM - Standardele PSR în ecosistemul PHP-ului

Radu Murzea - PHP Developer


Standardele sunt o realitate omniprezentă, întâlnită în toate palierele existenței noastre: de la în construcția caselor și a ecranelor fabricate cu anumite rezoluții, până la dimensiunile hainelor pe care le purtăm și la modul în care măsurăm orice din jurul nostru.În cazul limbajului PHP, aceste standarde se materializează sub forma PSR-urilor. Vă invităm într-o călătorie inițiatică în lumea acestora pentru a înțelege mai bine ecosistemul PHP-ului și tendințele de viitor ale acestuia.

Puțină istorie și motivație.

Orice limbaj de programare are standarde și metode best-practice de a rezolva probleme. Chiar și PHP-ul a avut astfel de elemente, însă cele mai multe dintre ele erau împrăștiate în variate părți ale comunității, fără o entitate care să le centralizeze, să le guverneze și să se ocupe de promovarea acestora.

În 2009, toate acestea s-au schimbat deoarece cinci dezvoltatori de framework-uri PHP s-au întâlnit la conferința php|tek Chicago 2009 și au decis înființarea unei entități care să rezolve problema standardelor în PHP o dată pentru totdeauna. Grupul s-a auto-denumit PHP-FIG (PHP Framework Interoperability Group). La scurt timp după înființare, primul standard propus de ei a fost publicat și denumit PSR-0. Acest standard a venit ca urmare a noului suport pentru namespace-uri introdus în PHP 5.3 în același an și a urmărit să standardizeze felul în care era folosită această nouă facilitate.

Despre PSR-uri.

PSR este prescurtarea denumirii PHP Standard Recommendation. Aceste standarde au un mod de funcționare foarte asemănător cu JSR-urile (Java Specification Request) din ecosistemul Java. Ele sunt numerotate începând cu 0 și conțin o specificație formală pentru o anumită tehnică de programare sau funcționalitate care poate fi implementată în PHP.

La momentul scrierii acestui articol, șapte standarde PSR au fost acceptate și folosite:

Câteva din standardele descrise mai sus nu sunt inventate de la zero, ci sunt bazate pe câteva din celebrele referințe RFC. De asemenea, toate standardele PSR folosesc specificațiile RFC-2119 în care se descriu câțiva termeni generali de vocabular care trebuie folosiți într-o specificație formală.

Mecanismele PHP-FIG se aseamănă foarte mult cu cele folosite în ecosistemul Java pentru standardele JSR:

De-a lungul timpului au existat multe controverse legate de obiectivitatea și utilitatea acestui grup. În timp ce e foarte posibil ca unele îngrijorări să fie bine fondate, trebuie să ținem cont de un aspect crucial al acestui grup și standardele care le propune: implementarea sau aderarea la ele este total opțională.

Din acest punct de vedere, standardele PSR împărtășesc aceleași caracteristici ca și design-pattern-urile:

Pe lângă toate acestea, trebuie să menționăm scopul principal al grupului: colaborarea între framework-uri (de unde și numele). Prin urmare, standardele propuse și acceptate vor avea tendința să acopere funcționalități oferite de majoritatea framework-urilor; Preocuparea este de a avea o metodă ușoară de a comuta între diferitele librării pe care aceste framework-uri se bazează.

Concluzie.

Cu toate că a fost perceput drept controversat, grupul PHP-FIG a reușit să se impună drept cea mai autoritară entitate a standardelor din lumea PHP-ului. Introducerea de către acest grup a standardelor PSR marchează începutul unei maturizări consistente a ecosistemului PHP.