Wat is Drupal?

Drupal is een populair open source contentmanagementsysteem geschreven in PHP. Het werd in de vroege jaren 2000 door een Belgische student gemaakt en beheert nu enkele van de meest prominente websites op het web (WhiteHouse.gov, Weather.com, enz.). Het wordt vaak beschouwd als een concurrent van CMS's zoals WordPress en Joomla.

Een van de belangrijkste componenten van het Drupal-project is de gemeenschap van supporters (bijdragers, ontwikkelaars, evangelisten, ondernemers, etc.). Prominent binnen deze community staat de Drupal Association, die verantwoordelijk is voor "het bevorderen en ondersteunen van het Drupal-softwareproject, de gemeenschap en de groei ervan".

Een gigantische stap vooruit van zijn voorganger, de 8ste grote release van het Drupal-project, is net in de schappen gevallen. Het zorgde voor een serieuze modernisering van zijn code, praktijken en mentaliteit. Velen beschouwen deze verschuiving als een echte stap verwijderd van de traditionele notie van een CMS naar meer van een Content Management Kader (CMF) dat een geweldig platform biedt voor het bouwen van complexe applicaties.

In dit artikel ga ik een aantal veelgestelde vragen beantwoorden die mensen over Drupal hebben wanneer ze voor de eerste keer opstarten of overwegen om dit te doen:

  • Is het goed voor mij? Op wie is het gericht?
  • Hoe kan het worden geïnstalleerd, en waar kan ik het hosten?
  • Hoe kan ik er als ontwikkelaar mee aan de slag gaan?
  • Welke opties heb ik om de functionaliteit uit te breiden of te stylen?

Voor wie is Drupal gericht?

Sinds het begin van het project is Drupal geëvolueerd van voornamelijk een hulpmiddel voor het bouwen van kleinere sites tot een platform dat nu platformen op ondernemingsniveau kan aansturen. Vooral met Drupal 8 kunnen sitebouwers en ontwikkelaars eenvoudig opschalen van kleine websites naar grote platforms met veel integraties. Met de goedkeuring van Composer kunt u bijvoorbeeld niet alleen externe bibliotheken in een Drupal-project brengen, maar ook Drupal gebruiken als onderdeel van een groter project van toepassingen en bibliotheken. Het is veilig om te zeggen dat Drupal flexibel genoeg is om aan de behoeften van een breed scala aan projecten te voldoen.

Als het gaat om ontwikkeling, heeft Drupal altijd een relatief gesloten gemeenschap gehad - niet omdat mensen onvriendelijk zijn, integendeel, maar vooral omdat de code meestal op een Drupal-manier wordt geschreven (wat resulteert in wat soms wordt aangeduid als Drupalisms). Dit betekende een leercurve voor elke ontwikkelaar die opstartte, maar ook minder interesse van ontwikkelaars van andere PHP-projecten om in te springen en bij te dragen.

Dit is niet langer het geval. Vooral met de release van Drupal 8 promoot de community nu een nieuwe mentaliteit van code-herbruikbaarheid en beste praktijken voor verschillende open-sourceprojecten. Actieve deelname aan de PHP Framework Interoperability Group maakt deel uit van deze inspanning, en het gebruik van een aantal populaire Symfony-componenten in Drupal 8-kern is een bewijs van deze verbintenis. 

Met deze actie is de Drupal-gemeenschap rijker geworden door veel ontwikkelaars uit andere gemeenschappen en projecten te verwelkomen, en het zal zeker nog verder groeien. Dus als je een Laravel-ontwikkelaar bent, zal het bekijken van Drupal-code niet langer zo ontmoedigend zijn.

Hoe kan ik Drupal installeren en waar kan ik het hosten?

Traditioneel heeft Drupal een relatief eenvoudig installatieproces gehad, met name voor mensen die op zijn minst hun weg wisten in een Linux-omgeving. Het project hoeft alleen maar te worden neergezet in een map die uw webserver kan uitvoeren (die PHP moet gebruiken en een MySQL- of MariaDB-database moet hebben). Wijs vervolgens uw browser naar de /install.php bestand en het volgen van de stappen zorgt voor de rest. Het belangrijkste scherm dat u zult zien is die waarin u een specifieke database selecteert om te gebruiken.

Qua vereisten is de LAMP-stackomgeving (Linux, Apache, MySQL en PHP) altijd al een favoriet voor Drupal geweest om in te voeren. Het is echter op geen enkele manier beperkt. Er bestaan ​​oplossingen om het rechtstreeks op Windows of Mac te installeren (bijvoorbeeld met de Acquia Dev Desktop) maar ook op een Linux-systeem dat andere webservers draait.

De gemakkelijkste benadering, als u met uw eigen opstelling gaat, is om een ​​LAMP-server te gebruiken voor hosting. Voor wat meer prestaties kun je Apache vervangen door Nginx, maar je zult dan voor een aantal specifieke configuraties moeten zorgen die anders in de .htaccess bestand Drupal wordt meegeleverd.

Als u echter niet wilt dat u uw eigen hostserver onderhoudt, zijn er drie belangrijke leveranciers van gespecialiseerde Drupal managed hosting: Acquia, Pantheon en Platform.sh. Deze bieden ook een workflow voor eenvoudige updates en ontwikkelingsstromen. In het verleden keek u naar volledig beheerde hosting met een Drupal-ontwikkelingsbedrijf.

Hoe kan ik aan de slag gaan om er voor te ontwikkelen?

Het ontwikkelen van Drupal-websites is meestal het soort ding dat je heel leuk vond of helemaal niet leuk vond. Dit komt omdat toen je voor het eerst kennismaakte met Drupal, je heel veel specifieke aspecten tegenkwam die je in andere projecten niet hebt gezien. Dus als die gekkikkerd waren, hield je er voor altijd van.

Met dit uitstappen eiland in Drupal 8 is dit niet langer het geval. Je hebt er nog steeds genoeg van Drupalisms links dat je kunt liefhebben of haten, maar je hebt nu ook externe componenten zoals Symfony of Guzzle en, belangrijker nog, een meer moderne manier van schrijven van code in het algemeen (OOP, ontwerppatronen, herbruikbare componenten, enz.). Dus je PHP-vaardigheden van het bouwen van websites met Zend komen van pas.

Een goede manier om Drupal te ontwikkelen is door een aantal online videocursussen te volgen. Er zijn een aantal bronnen die uitstekend zijn voor dit doel, met name Drupalize.me. Als video echter niet uw favoriete medium is, zijn er ook veel geschreven zelfstudies en handleidingen beschikbaar om u op weg te helpen. Bekijk de volgende koppelingen voor enkele van de eerste stappen die u kunt nemen:

  • Officiële Drupal ontwikkelingshandleidingen
  • De Drupal API-referentie
  • Module ontwikkelingsgidsen
  • Envato's Drupal Code Tutorials

Omdat Drupal 8 gloednieuw is, zult u aanzienlijk meer leerinhoud vinden voor Drupal 7. Niettemin is de focus in de community recentelijk verschoven naar Drupal 8, dus u kunt verwachten dat steeds meer van deze bronnen opduiken. En als je geen ervaring hebt met een versie van Drupal, kun je het beste alleen op Drupal 8 focussen, want de veranderingen tussen beide zijn groot en misschien krijg je te maken met onnodige uitdagingen.

Hoe kan ik Drupal verlengen?

Het belangrijkste uitbreidingspunt van een kerninstallatie van Drupal is de module systeem. 

Modules worden gebruikt om grotere brokken van herbruikbare functionaliteit in te kapselen die op verschillende sites kunnen / moeten werken. Naast de kernmodules zijn er een groot aantal bijgedragen modules beschikbaar voor installatie. 

Toegegeven, de meeste zijn nog steeds alleen voor Drupal 6 en 7, maar de community is ook bezig met het inhalen van de nieuwste versie. Dit probleem wordt ook beperkt door de integratie in Drupal 8 van een paar modules met populaire bijdragen en door de reikwijdte van wat de kern uit de doos kan doen te vergroten (vergeleken met Drupal 7). 

Ten slotte zijn aangepaste modules (degene die u zelf schrijft) de belangrijkste manier om functionaliteit toe te voegen die u maar wilt en die niet beschikbaar is via een bijgedragen module.

Door modules te installeren, kunt u verschillende functies invoegen, maar u moet dit niet als een groen licht beschouwen om er te veel toe te voegen. Het is altijd beter om vast te houden aan degenen die je echt nodig hebt, en wees niet bang om kritisch te zijn in dit opzicht. U kunt ook werken aan het vinden van een goede balans tussen de ingebrachte code en de aangepaste code die u zelf schrijft. 

Bovendien, aangezien we het hebben over open-source software, moet u altijd de modules die u installeert evalueren. De volgende indicatoren zijn goede voorbeelden om op te letten: aantal downloads en gebruik, vastleggingsfrequentie, betrokkenheid van de beheerder, status van de wachtrij.

En houd ook de beveiliging in het oog. Het wordt ten zeerste aanbevolen om zowel de Drupal-kern als alle bijgevoegde modules up-to-date te houden, omdat dit je aanzienlijk helpt om je site en server beveiligd te houden (hoewel het dit niet garandeert)..

Hoe zit het met styling??

De stylinglaag van een Drupal-site wordt (voor een groot deel) behandeld volgens het thema. Thema's lijken op modules omdat ze een uitbreidingspunt zijn, maar ze hebben verschillende verantwoordelijkheden. Ze bevatten de stijlen, front-endbibliotheken en in de meeste gevallen sjabloonbestanden die worden gebruikt om gegevens uit te voeren.

Er is grote vooruitgang geboekt in Drupal 8 in vergelijking met de vorige versie: de populaire Twig-engine is aangenomen voor templating, thematisering is beperkt tot Twig-sjabloonbestanden, foutopsporing en algemene templates zijn veel gemakkelijker gemaakt, enz. Vergelijkbaar met de vooruitgang in back-end development experience (DX), de themagelaag is aantrekkelijker gemaakt voor het niet-Drupal-publiek. Front-end ontwikkelaars kunnen nu eenvoudig met Drupal-thema's werken zonder de ins en outs van de back-end te hoeven begrijpen.

Drupal core wordt geleverd met een aantal thema's die u voorbeelden kunnen bieden, maar ook waaruit u kunt uitbreiden. Er zijn ook bijgedragen thema's vergelijkbaar met hoe er modules zijn. Populaire front-end frameworks zoals Bootstrap of Zurb Foundation hebben volwassen Drupal-thema-implementaties voor Drupal 7, die ook geschikt zijn voor Drupal 8. Deze werken heel goed als basisthema's, maar ook voor het snel onderhouden van een website en het er fatsoenlijk laten uitzien.

Betaalde thema's zijn ook beschikbaar om uit te proberen. Meestal zijn ze erg goedkoop en snel in te stellen. Het probleem met hen is dat ze net zoveel waard zijn als u ervoor betaalt en meestal gapende gaten in hun flexibiliteit hebben. Als een beginner, kunnen deze thema's een geweldige manier lijken om een ​​site op te zetten, en dat kunnen ze heel goed zijn. Naarmate u vordert, leert u ze echter te omzeilen en zelf te bouwen, op basis van externe ontwerpen of zelfs platte HTML / CSS / JS-sjablonen..

Conclusie

Drupal is een krachtige tool voor het bouwen van websites en platforms van welke aard dan ook. Met elke nieuwe belangrijke release heeft Drupal een commitment getoond om zichzelf te verbeteren, robuuster en flexibeler te worden en buiten de gemeenschap ook te omarmen.