Drupal

Werkend met Drupal krijg je het gevoel dat de enige beperking is gelegen in de eigen fantasie. Die laat ik daarom graag voeden door ideeën van opdrachtgevers.

Drupal is een open source Content Management Systeem (CMS) en ontwikkel framework, met een zeer actieve community.

Inmiddels is Drupal 8 al weer een tijdje uit. Net als bij de introductie van Drupal 6 en 7 duurt het daarna nog een tijdje voordat de nieuwste release echt interessant wordt voor het ontwikkelen van websites. Vorige versies van Drupal waren daarbij vooral afhankelijk van het aanbod aan contributed modules. De core functionaliteit werd weliswaar geoptimaliseerd maar veranderde niet wezenlijk. Bij Drupal 8 is dat wel het geval. Twee keer per jaar verschijnt er een nieuwe mayor release. Zo werd in 8.4 de media module toegevoegd (weliswaar nog niet stabiel en alleen te installeren via de commandline). In versie 8.5 werd deze officieel en in 8.6 verder uitgebreid. De media module in core is nu zeker bruikbaar en hoewel het nog niet alle mogelijkheden biedt van de contributed evenknie is het wat betreft media beheer onmiskenbaar de oplossing voor de toekomst.

Een veelgehoorde ergernis met betrekking tot Drupal is dat nieuwe versies niet backward compatible zijn. In de loop van de tijd wordt je steeds tevredener over de schier oneindig wordende mogelijkheden die de ongekende aantallen contributed modules bieden en die voor elk probleem een oplossing lijken te bieden maar dan verschijnt daar de nieuwe Drupal versie.

Je keek er al reikhalzend naar uit vanwege al die nieuwe features die werden beloofd. Maar in de praktijk begint deze cyclus toch altijd weer met een flinke stap terug. De ontwikkelaars staan open voor innovatie. Voorlopig hou je je dus maar bij het oude maar ondertussen ben je bewust van de komende veranderingen en je blijft de ontwikkelingen met belangstelling volgen.

Uiteindelijk, na anderhalf jaar lijkt Drupal 8 haar belofte waar te gaan maken. Met de komst van versie 8 zijn zonder meer indrukwekkende verbeteringen doorgevoerd. Het maakt gebruik van tal van externe bibliotheken die met behulp van configuratiebestanden in het systeem worden geïntegreerd. Dit is hoge mate te danken aan Symfony, het framework waarop Drupal 8 gebouwd is. Het maakt het CMS flexibeler dan ooit en in hoge mate aanpasbaar:

  • Door het toepassen van Symfony's service containers wordt het beheer van klasse afhankelijkheden makkelijker gemaakt en kan makkelijker doorgewerkt worden aan nieuwe features binnen Drupal 8. Zo zie je nu in de 8.1-beta versie de integratie van Facebook's BigPipe techniek die een betere gebruikerservaring belooft. Trage delen zoals niet te cachen blokken en externe feeds worden naderhand ingevoegd.
  • Als datasource maak je normaal gesproken gebruik van de standaard database structuur maar je bent er niet aan gebonden. Even gemakkelijk importeer je de gegevens van andere plekken.
  • En aan de front end is er nu Twig. Een krachtig template systeem met als belangrijkste pluspunten de veiligheid, de overerving, de uitbreidbaarheid en de uitgebreide functionaliteit. Drupal 8 is nu al een feest voor de ontwikkelaar en het wordt steeds mooier.

Met Drupal 8 is het systeem in hoge mate gemoderniseerd en is het voorbereid op de toekomst. Drupal 9 belooft backwards compatible te worden waarmee een van de grootste ergernissen lijkt te zijn overwonnen.

Waarom ik voor Drupal kies.

Dat moge uit het voorgaande duidelijk zijn. Binnen PHP is het het meest geavanceerde uitgekiende en uitgebreide Open Source CMS van dit moment. Met enige regelmatig maak ik webapplicaties voor andere platforms, meestal Wordpress. Daarbij valt op hoe makkelijk een ervaren Wordpresser functionaliteit kan toevoegen. Toch blijf ik verknocht aan Drupal. Want telkens als ik zelf aan de slag ga en dieper moet ingrijpen in het systeem valt op hoe het CMS is. Het kost aanvankelijk weliswaar meer inspanning om het systeem te leren kennen, maar uiteindelijk ben ik zeer tevreden over  zoveel robuustheid en elegantie. Met een basisinstallatie kun je al heel veeel kanten op. En als de basis fuctionaliteit niet toereikend is kun je die met Views uitbouwen. Mocht dat toch nog niet genoeg zijn dan worden er op de Drupal website nog talloze contributed modules kostenloos aangeboden en uiteindelijk kun je altijd nog een eigen module maken. Hetzelfde geld voor themas. Daarbij maak ik zelf het liefst gebruik van Bootstrap of base themes als Zen.

De mogelijkheden met Drupal zijn eindeloos.