eZ Publish
eZ Publish is een content-beheersysteem van eZ Systems. Het is geschreven in PHP, en is volledig objectgeoriënteerd. Het doel van eZ Publish moet het eenvoudig opzetten, onderhouden en bewerken van een website zijn, omdat de volledige applicatie voor zowel de contentschrijvers als de websiteontwikkelaars volledig gedocumenteerd is.
Inhoud |
Edities [bewerken]
eZ Publish kent twee verschillende edities van het systeem:
- Een community-edition (gratis)
- Een Enterprise-edition
De community-edition wordt actief ontwikkeld door een grote schare van ontwikkelaars die hun code bijdragen via Github. Een groep vaste ontwikkelaars voert hierop een kwaliteitscontrole uit en geeft elke maand een nieuwe versie uit, voorzien van de laatste ontwikkelingen en bugfixes.
Halfjaarlijks wordt eZ Publish Enterprise-edition opnieuw uitgebracht. Deze editie is gebaseerd op de code die is bijgedragen door de community, maar verschilt van de community-edition door de strengere en uitgebreidere kwaliteitscontrole die hierop heeft plaatsgevonden, de onbeperkte support op het systeem en het onderhoud. De Enterprise-edition is voornamelijk geschikt voor gebruikers die de flexibiliteit van opensourcesoftware verlangen, maar niet afhankelijk van een community willen zijn.
Applicatiearchitectuur [bewerken]
De (grote) kernel van eZ Publish stuurt de modules en bibliotheken in het systeem aan. Voor het gebruik van eZ Publish zijn enkele, vrij verkrijgbare, componenten nodig, bekend onder de naam Apache Zeta Components (voorheen eZ Components). De volledige Zeta Components-bibliotheek (PHP) is ook geschikt voor andere toepassingen.
De kernel [bewerken]
Dit is de laag die de modules en de bibliotheken op de juiste manier aanstuurt. Deze kernel wordt als eerste aangeroepen zodra een bezoeker een webpagina bezoekt. Nadat de kernel begrijpt wat deze gebruiker wil (aan de hand van POST/GET-variabelen), roept deze de juiste modules aan.
De modules [bewerken]
Een module is een onderdeel van de website. Voorbeelden van modules zijn content, webshop, gebruikersprofielen, zoekmachine, trainingsagenda enz.
Om door de kernel geïnterpreteerd te kunnen worden, heeft de aanroep van een pagina een bepaalde syntaxis. De specificatie van de aanroep wordt meegegeven in de URL. De variabelen worden gescheiden met schuine strepen. Een voorbeeld van een URL:
index.php/role/list
In dit voorbeeld wordt de module 'role' aangeroepen, en de functie ‘list’.
De modules bevinden zich in de map ./kernel/<modulenaam>. In deze map staan de bestanden die deze module te maken hebben.
Deze bestanden zijn vrij qua naamgeving. Er bevindt zich echter een vast bestand in deze map. Dit bestand heet ‘module.php’ en bevat informatie met betrekking tot de kernel.
Alle verdere scripts met betrekking tot deze module staan ook in deze map.
Bibliotheken [bewerken]
Een bibliotheek (library) kan gezien worden als een driver. Zo is er een databasebibliotheek (ezdb) een pdf-exportbibliotheek (ezpdf). Een bibliotheek heeft een type: input of output. Deze bibliotheken worden door de kernel gebruikt om de modules aan te sturen.
Er kan door middel van configuratie (die bestanden staan in de map ‘./settings’) bepaald worden welke bibliotheken er voor welk doeleinde worden geladen.
Bibliotheken bevinden zich in de map ‘./libraries’
Zelf modules schrijven [bewerken]
Zoals eerder vermeld, is de code van eZ Publish uitvoerig gedocumenteerd, en er is API-documentatie aanwezig. In deze documentatie staat omschreven hoe een module opgebouwd is (zoals hierboven beschreven), hoe deze geïmplementeerd wordt (welke functies/variabelen/werking deze moet hebben). Ook worden de gebruikte design-patterns uitvoerig uitgelegd.
Extensies [bewerken]
Naast de vele gratis extensies die door de community ontwikkeld zijn, is er met de verschijning van eZ Publish Enterprise 4.5 een eZ Market opgezet. De extensies in de eZ Market zijn professionele en lang ondersteunde extensies die voor Enterprise-edities ontwikkeld zijn.
Partners [bewerken]
eZ Systems, het bedrijf achter eZ Publish, heeft een partnerprogramma. Bedrijven in Nederland die actief op eZ Publish ontwikkelen zijn onder andere Smile te Amsterdam en Contactivity te Leiden. Naast diverse professionele partners kan iedereen en ieder bedrijf dat op eZ Publish websites ontwikkelt zich aansluiten bij het Community Program.