WordPressin koodipohja paranisi modernilla PHP:llä

Julkaistu 25.2.2019
Heikki Kujala

Taaksepäin yhteensopivuuden vuoksi WordPressiin ei ole lisätty uusia PHP-ohjelmointikielen ominaisuuksia version 5.2.4 jälkeen, joka julkaistiin elokuussa vuonna 2007. Tämän takia WordPressin koodista puuttuu tuoreimpien PHP-ohjelmointikielen parannuksia kuten nimiavaruus. Onneksi WordPress vaatii kohta PHP 5.6 ja 7.0+ joulukuussa 2019.

PHP viitekehykset

WordPress ei käytä moderneja PHP viitekehyksiä kuten Symfony, vaikka pitäisi. Symfony sisältää runsaasti uudelleenkäytettäviä PHP-komponentteja, jotka voidaan asentaa itsenäisesti Symfonystä. Esimerkiksi toinen PHP viitekehys Laravel sisältää useita Symfonyn komponentteja.

PHP-sivupohjamoottorit

HTML-sisällön voi esittää pelkällä puhtaalla PHP:llä, mutta tätä varten on sivupohjamoottoreita kuten Symfony-viitekehyksen Twig ja Laravel-viitekyksen Blade.
Niissä on helppo syntaksi ja tehokkaat ominaisuudet, jotka antavat sille etuja verrattuna puhtaaseen PHP.

WordPressin uusi Gutenberg-editori

WordPressin uuden version 5 myötä esiteltiin Gutenberg-editori, joka on vanhaa editoria paljon monipuolisempi. Gutenberg antaa kuitenkin käyttäjälle valtavasti uusia työkaluja tekstin muokkaamiseen ja sivun leiskan järjestelyyn. Gutenbergia voi luonnehtia askeleeksi niin sanottujen Pagebuildereiden suuntaan. Gutenberg on toteutettu moderneilla tekniikoilla kuten React ja Webpack, joten miksi WordPress palvelinpuolen koodia ei voisi toteuttaa moderneilla web-teknologioilla.

Yhteenveto

WordPressin koodipohja on vanha ja sen pitää uudistua. Tietyssä mielessä taaksepäin yhteensopivuuden säilyttäminen on ymmärrettävää, mutta pitkässä juoksussa saattaa johtaa koodipohjan vanhentumiseen. Yhteensopivuuden rikkoutuminen johtaa sivustojen migraatioihin, mutta joka tapauksessa web-sivusto on hyvä rakentaa määräajoin kuten 3 vuoden välein.

Esimerkiksi tiedostopohjaiset julkaisujärjestelmät kuten Grav käyttävät moderneja tekniikoita kuten Twig. Ne osoittavat kuinka helppoa on kehittää itse julkaisujärjestelmää ja sen laajennuksia, kun ohjelmiston arkkitehtuuri on kunnossa.