Yhdistyneet Kuppikunnat - PHP:n uusi nousu

PHP on historiaa, eri projektit ovat kulkeneet omaa polkuaan tuhoonsa ja tulevaisuus on pelkkää javascriptiä. Vai onko sittenkään?

PHP:llä kielenä on sekä huonot puolensa ja… noh, paljon käyttäjiä. Tämän kirjoituksen aiheena ei kuitenkaan ole kielen hyvät ja huonot puolet, vaan PHP -yhteisön toimet viime vuosien aikana.

PHP:llä on viimeisen viidentoista vuoden aikana toteutettu monia hyviä julkaisujärjestelmiä (CMS) ja kehitysalustoja (framework), näistä jokainen vähän omaan tyyliinsä ja omillaan, korkeintaan lainaten joitain Zendin toteuttamia komponentteja. Kaikki prokkikset ovat rakentaneet pyörän uudestaan, vähän omaan tapaansa.

Mutta näin ei ole enää. Nyt puhalletaan voimakkaasti yhteen hiileen.

Enter PHP-FIG

PHP-FIG (Framework Interoperability Group, http://www.php-fig.org) on kehittäjäyhteisön muodostama ryhmä, jossa on edustettuna useimmat merkittävät PHP-projektit. PHP-FIG tähtää yhteisten käytäntöjen kehittämiseen tavoitteena yhdenmukaistaa kehitystyötä siten, että eri projektit voivat hyötyä toisistaan.

Ryhmä on toiminut jo useamman vuoden ja aktiivisille kehittäjille ryhmän aikaansaannokset ovatkin jo tuttuja.

Ryhmän työ konkretisoituu PSR -standardien muodossa, mitkä antavat käytännön ohjeistukset minkälaista koodia ja missä muodossa kehittäjien tulisi toteuttaa. Ensimmäiset standardit ottavat kantaa perusteisiin, kuten tiedostojen järjestämiseen, koodin muotoon ja käytettyyn tyyliin. Näillä saadaan yhdenmukaistettua työtavat, mikä on ensimmäinen askel komponenttien käyttämiseen eri projektien välillä ilman suurempia ponnisteluja.

Composer / Packagist

Ennen muinoin kolmansien osapuolten kirjastoja asennettiin PEARin avulla. PEAR on varsin kankea väline pakettienhallintaan mm. koko ympäristönlaajuisen asennuksen vuoksi.

Pearin puutteiden vuoksi moni CMS & framework toteutti oman laajennusten hallintansa, jokainen kehitti oman tapansa asentaa plugineita ja joita pitää tietysti ylläpitää ja hallinnoida erikseen.

Composer (https://getcomposer.org/) on uudempi, PSR -standardeja noudattava pakettienhallinta, joka toimii itsenäisesti alustasta riippumatta. Composerin avulla koodin uudelleenkäyttämisestä tuli yhtäkkiä helppoa ja luontevaa, kun sama koodi käy eri alustoilla kehitettäviin projekteihin ilman suurempia temppuja. Tämä taas ei olisi ollut mahdollista ilman PHP-FIGin alustamaa standardointityötä.

Symfony Components

Symfony (http://symfony.com/) on SensioLabsin kehittämä framework, joka nauttii maailmalla suurta suosiota kehittäjien keskuudessa. Nerokkainta Symfonyssä on ehkä kuitenkin sen voimakkaasti kakkosversiosta eteenpäin ajama komponenttiajattelu PSR -standardien mukaisesti. Kuten Symfony asian itse toteaa esittelytekstissään, se on sekä kokoelma uudelleenkäytettäviä komponentteja että framework web-projektien kehittämiseen.

Symfonyn komponentit (http://symfony.com/components) ovatkin lyöneet läpi eri projektien kehityksessä, ja mm. Drupal, Laravel, eZ Publish, Magento ja moni muu nojaa vahvasti näihin samoihin uudelleenkäytettäviiin komponentteihin.

PHP is cool again

Raflaavasta väliotsikosta huolimatta PHP ei ole varsinaisesti kovin koleaa. PHP:ssä on edelleenkin omat perustavanlaatuiset ongelmansa, mutta verkkopalveluiden kehittäminen jollain PHP:hen nojaavalla alustalla on entistä perustellumpaa.

Alalla on yhteiset työtavat, aidot välineet jakaa koodia eri alustojen välillä ja entistä laajempi yhteisö toteuttamassa valmiita palikoita palapeliin. Käytetyn kielen ongelmat painuvat taka-alalle, kun ylemmän tason hyödyt kasvavat käytettäessä laajaa tukea nauttivia laadukkata komponentteja.

Yhdistettäessä ajantasalla olevat kehitysalustat ja julkaisujärjestelmät fiksuun arkkitehtuuriin erilaisten modernien palvelinsoftien ja työtapojen kanssa (Varnish, Memcached, noSQL, CDN, TDD, BDD, Vagrant jne.) ei ole liioiteltua sanoa, että PHP on edelleenkin/taas mukana ihan enterprise -tasolla pitämässä paikkaansa.

Kirjoittaja: Veli-Matti Viippola