Forest header image

Symfony Finland
Random things on PHP, Symfony and web development

eZ Platform: Sisällönhallintaa Symfony sovelluskehyksellä

eZ Platform on avoimen lähdekoodin sisällönhallintajärjestelmä eZ Systemsiltä. Se on rakennettu Symfony sovelluskehyksellä ja tunnettiin aiemmin nimellä eZ Publish ja se on määrä julkaista vuoden 2015 viimeisellä vuosineljänneksellä.

Vanhempi eZ Publish 5 järjestelmä on myös rakennettu Symfonyn avulla ja on yhä käyttökelpoinen ja takaisinpäin yhteensopiva. eZ Publish 5 kehittäjät voivatkin käyttää Symfony sovelluskehystä tehokkaasti sivustojen ja sovellusten rakentamiseen.

Heinäkuussa 2012 eZ Publishin kehittäjät ilmoittivat ottavansa käyttöön Symfony2 sovelluskehyksen. Tässä vaiheessa itse sovelluskehys oli vasta vuoden vanha ja oli muutenkin iso loikkaus PHP-sovelluskehitykselle.

Sisällönhallintajärjestelmän luvattiin olevan takaisinpäin yhteensopiva vuonna 2002 alkunsa saaneen version 4 kanssa. Tämä aiheutti runsaasti lisätyötä ja tarkoitti että tuote ei saanut uusia ominaisuuksia loppukäyttäjille. Versiopäivitysten uudet ominaisuuksista iloitsivat ainoastaan kehittäjät.

Siirrytään kolme vuotta eteenpäin ja tuote on kypsynyt niin paljon että vanha eZ Publishin koodipohja voidaan jättää pois. Sovelluskehitys vihjaa jo nimenä että sen tarkoitus on tarjota tukea kehityksene.

Sovelluskehys tuo vakautta ja suuntaa, mutta myös tietyn määrän jäykkyyttä. Eri järjestelmissä on myös oma oppimiskäyränsä. Tämän takia rokkistarojen ja kokeneidenkin kehittäjien tulisi opiskella sovelluskehyksen käyttö ennen tuotantoprojekteja.

Sovelluskehyksen edut

PHP on perinteisesti ollut kehittäjien temmellyskenttä jossa on ratkottu samoja pulmia uudelleen ja uudelleen. Tämä tapahtuu aina uuden teknologian suosion noustessa ja tällä hetkellä JavaScript-maailma on pitkälti samassa tilassa. Tämä ajaa kehitystä eteenpäin, mutta on raskasta kehittäjille ja tarjoaa tietyn pisteen jälkeen vain vähän etuja.

Kypsän ohjelmointikielen ja ympäristön merkki on että kehittäjillä on työkalut oman koodin jakamiseen. PHP on päässyt tähän vaiheeseen ja tarjolla onkin useita sovelluskehyksiä kuten Zend, Symfony ja Laravel joiden avulla kehittäjät voivat saada aikaan sovelluksia (kuten sisällönhallintajärjestelmän) hyvinkin nopeasti ja strukturoidusti.

Moni asia on muuttunut vuoden 2012 jälkeen. JavaScript elää uutta kukoistuskautta ja PHP maailmassa käytännöt ja koodi ovat jaettavissa helpommin kuin koskaan. Ero esimerkiksi Drupalin ja eZ Publishin välillä on kaventunut huomasti. Katsotaanpa mitä nämä vuodet ovat tuoneet eZ Publish / Platform kehittäjille.

Sisällönhallintaa Symfony2 sovelluskehyksellä


eZ Platformin kanssa työskentely on hyvin tuttua Symfony2 sovelluskehyksen kehittäjille. Itseasiassa se on identtistä, sillä eZ Platform on ainoastaan sovellus joka on rakennettu tämän sovelluskehyksen avulla. Sisällönhallintajärjestelmistä malli on tuttu esimerkiksi EPiServerin ja ASP.net MVC:n välillä.

eZ Platformin ja Symfonyn tapauksessa sovelluskehys tarjoaa perus ominaisuudet kuten:

  • Täydelllinen HMVC arkkitehtuuri
  • Istuntojen hallinta
  • Kehitystyökalut debuggaukseen
  • Välimuistimekanismit

Tähän päälle eZ Platform tarjoaa:

  • Kehittyneet sisällönhallinnan ominaisuudet
  • Modulaarisen sisältösäilön tietomalliksi
  • Integroidun haun Solr-hakukoneella
  • Sivustojen konfiguraatiot domainin, sijainnin sekä kielten mukaan

Tämän lisäksi eZ Platform käyttää kolmannen osapuolen laajennuksia (Bundle) seuraaviin toimintoihin:

Sovellusta voi laajentaa käyttämällä Symfony2 laajennuksi (bundleja) ja sisältörakenteen lisäksi voi käyttää vaihtoehtoisia tietomalleja kuten eri SQL-pohjaisia ORM malleja, MongoDB dokumenttitietokantoja tai graafitietokantoja sisällönhallintaan.

Symfony CMF:stä tuttu joustava reitityskomponentti mahdollistaa näiden käyttämisen ennen kuin pyyntö edes etenee eZ Platform sovelluksen tasolle. Lisäksi on mahdollista tehdä syvällisempiä integraatioita, kuten esimerkiksi eZ Platformin käyttäjätietokannan integrointi MongoDB dokumenttitietokantaan FOSUserBundle laajennuksen avulla.

Kaikki ylläoleva tarkoittaaa että sekä koodi, että osaaminen ovat suoraan jaettavissa Symfony2 ja eZ Platform kehittäjien välissä. Toki kehittäjän pitää oppia käyttämään ylemmän tason rajapintoja, mutta itse perusasiat pysyvät kehittäjän kannalta samana.

Modern Talking: Rajapinnat

Rajapinnat ovat kuin 1980-luvun bändi joka palaa aina uudelleen kartalle tuoreella remiksillä samasta vanhasta hitistä. Tällä hetkellä tämä kierrossa oleva remix on REST API, jolla onkin omat etunsa. eZ Platform tarjoaa kattavan ja laajennettavan REST-rajapinnan joka on käytössä myös järjestelmän hallintakäyttöliittymässä.

eZ Platform itsessään on rakennettu Symfony2 sovelluskehyksen päälle, mutta sisäiset rajapinnat (SPI ja API) on rakennettu niin että niitä voi käyttää osana pienempiä sovelluksia. Tämä mahdollistaa tulevaisuudessa esimerkiksi kevyiden rajapintojen rakentamisen PHP-kielelllä ilman ulkoisia HTTP kutsuja.

Drupal sisällönhallintajärjestelmän tulevaisuudesta puhuessaan Larry Garfield arvailee kuinka PHP-kehitys tulee muuttumaan tulevaisuudessa. Ennustaminen on vaikeaa, mutta uskon myös että asynkroninen ohjelmointi tulee näyttelemään osaa myös PHP-maailmassa. eZ Platformin irrallinen PHP-rajapinta ja asynkroninen kehitys mahdollistaa suorituskykyisten ulkoisten rajapintojen rakentamisen esimerkiksi Icicle kirjastoa käyttäen.

Tätä odotellessa kannattaa panostaa laadukkaan sisällön tuottamiseen. Tekniikka on lopulta vain väline, kuten painokone aikanaan.


Written by Jani Tarvainen on Tuesday October 13, 2015
Permalink -

« Graafitietokannat ja sisällönhallinta - Ilmaiset SSL sertifikaatit ja HTTP/2 »