  1. [Home](/) /
2. [Blog](/blog) /
3. Zie jij door de bomen het bos niet meer? Hier zijn 6 Drupal best practises.
 
  02 Nov 2022 

# Zie jij door de bomen het bos niet meer? Hier zijn 6 Drupal best practises.

Als jij veel tijd besteedt aan het bouwen van websites en applicaties in Drupal, is het handig om bekend te zijn met enkele ‘best practises’, om zo efficiënt mogelijk te werk te kunnen gaan.

 

  ## Zie jij door de bomen het bos niet meer? Hier zijn 6 Drupal best practises die het CMS een stuk overzichtelijker maken

 

Van het beheer van modules en gebruikersgegevens tot het genereren van code - al deze processen kunnen worden geautomatiseerd en uitgevoerd met aan de hand van slechts enkele commando's. In dit artikel benoemen we enkele beschikbare tools en bespreken we aan de hand van specifieke ‘use cases’ hoe jij deze in de praktijk kunt brengen.



 

 



 

 

 

 

 

 





 ## 1. Drupal Console

 

Drupal Console is een krachtige Command Line Interface. Het wordt gebruikt om boilerplate code te genereren en Drupal te onderhouden en te debuggen.

Om Drupal Console aan een project toe te voegen, hoef je maar één commando te gebruiken. Dit commando luidt als volgt:



 

 



*composer require drupal/console:~1.0 \\*  
*--prefer-dist \\*  
*--optimize-autoloader*



 

 



Daarna kunnen we binnen Drupal Console verschillende commando's gebruiken. We geven hieronder enkele voorbeelden.

**Module generatie:**



 

 



*drupal generate:module \\*  
 *--module="modulename" \\*  
 *--machine-name="modulename" \\*  
 *--module-path="/modules/custom" \\*  
 *--description="Mijn geweldige module" \\*  
 *--core="9.x" \\*  
 *--package="Custom" \\*  
 *--module-file \\*  
 *--composer \\*  
 *--test \\*  
 *--twigtemplate*



 

 



**Het genereren van een entity:**

*drupal generate:entity:content \\*  
 *--module="modulename" \\*  
 *--entity-class="DefaultEntity" \\*  
 *--entity-name="default\_entity" \\*  
 *--base-path="/admin/structure" \\*  
 *--label="Standaard entiteit" \\*  
 *--is-vertaalbaar \\*  
 *--reviseerbaar \\*  
 *--has-forms*

**Het genereren van een service:**

*drupal generate:service \\*  
 *--module="modulename" \\*  
 *--name="modulename.default" \\*  
 *--class="DefaultService" \\*  
 *--interface \\*  
 *--interface-name="InterfaceName" \\*  
 *--path-service="/modules/custom/modulename/src/".*

**Het aanmaken van een gebruiker:**

*drupal user:create gebruikersnaam wachtwoord \\*  
 *--roles='geauthenticeerd' \\*  
 *--email="username@testing.com" \\*  
 *-status="1"*

Zoals je ziet, geeft Drupal Console ons veel mogelijkheden. Een andere interessante optie die deze Command Line Interface (CLI) ons biedt, is het draaien van een lokale PHP-server om onze website te testen. Dit kan door middel van de volgende command:

*$ drupal server*

Dit commando start voor ons een lokale server op poort 8088



 

 



 

 

 

 

 

 





 ## 2. Examples for Developers

 

Het Examples for Developers project is een grote verzameling voorbeelden van hoe je eigen modules in Drupal kunt schrijven. Deze module biedt 33 verschillende modules, van eenvoudige blokken, via verschillende soorten formulieren, tot controllers met REST API ondersteuning. Je zult waarschijnlijk alle voorbeelden vinden die je nodig hebt om zelf modules te kunnen bouwen. Deze module zal je helpen om nieuwe dingen leren en sneller werken.



 

 



 

 

 

 

 

 





 ## 3. Devel

 

De Devel module bevat extra functies en hulppagina's voor ontwikkelaars en beheerders. Deze voorziet jou als ontwikkelaar van blokken en werkbalken voor snelle toegang en informatie. We kunnen deze gebruiken om een andere gebruiker te "simuleren". Dit is een zeer nuttige functionaliteit, vooral bij het testen van rollen en rechten in Drupal. Devel biedt ons functies die ons helpen bij het debuggen. En de kers op de taart - we kunnen het gebruiken om testinhoud te genereren.

Met behulp van composer kun je deze module gemakkelijk installeren aan de hand van de volgende command:   
*composer require --dev drupal/devel*



 

 



 

 

 

 

 

 





 ## 4. Weight

 

Soms gebeurt het in ons project dat we modules gebruiken die dezelfde hooks gebruiken. In de standaard configuratie staat Drupal niet toe om de volgorde van module-uitvoering te kiezen. Deze volgorde kan worden aangepast door de modules een verschillend ‘gewicht’ te geven. Dit kan op drie manieren worden gerealiseerd.



 

 



#### Methode 1 - het gewicht van de Drupal-module instellen tijdens de installatie ervan

In het installatiebestand van onze module kunnen we HOOK\_install toevoegen en daarmee het modulegewicht instellen.  
  
Drupal 9 biedt een ingebouwde functie om dit probleem op te lossen:

*function your\_module\_name\_install() {*  
 *module\_set\_weight('\[your\_module\_name\]', \[your\_preferred\_weight\]);*  
*}*

In Drupal 7 is het iets ingewikkelder, omdat we dit veld in de database zelf moeten veranderen:  
  
*function your\_module\_name\_install() {*  
*db\_update('system')*  
 *-&gt;fields(array('weight' =&gt; your\_preferred\_weight))*  
 *-&gt;condition('name', '\[your\_module\_name\]', '=')*  
 *-&gt;execute();*  
*}*



 

 



#### Methode 2 - Gewicht wijzigen in core.extension.yml

Als we configuraties gebruiken in ons project, kunnen we het gewicht van onze module wijzigen in het bestand core.extension.yml nadat we ze geëxporteerd hebben. Het gewicht wordt weergegeven als een getal achter de naam van de module. Hoe groter het gewicht, hoe eerder de methoden in de module worden uitgevoerd.



 

 



#### Methode 3 - Modules Weight gebruiken

De Drupal module Modules Weight voegt een gebruiksvriendelijke configuratie van modulegewichten toe. As je naar de configuratiepagina navigeert (/admin/config/system/modules-weight/configuration),

 kun je eenvoudig de gewichten van onze modules instellen.



 

 



 

 

 

 

 

 





 ## 5. Lando

 

Dit is een tool die de lokale ontwikkeling van onze website vergemakkelijkt. Het stelt ons in staat om letterlijk alles te runnen en is gebaseerd op Docker. We hebben nu de CLI (Command Line Interface) tot onze beschikking, waarmee we eenvoudig onze installaties kunnen beheren. Om lokaal een Drupal-installatie op te zetten, hebben we slechts enkele commando's nodig. Allereerst maken we een Drupal-project aan met Composer. Dit doen we aan de hand van de volgende command:  
*composer create-project drupal/aanbevolen-project lando-demo*  
  
Dan navigeren we naar de aangemaakte directory en voeren het volgende commando uit:  
*lando init*

Vervolgens kun je de volgende stappen doorlopen:

- Kies drupal9 als recept,
- noem je webroot web,
- en geef vervolgens je project een naam.

Na dit proces wordt een .lando.yml bestand aangemaakt. Je zal daar een heleboel verschillende informatie vinden, zoals de naam van je project, welke diensten je bebruikt (in eerste instantie zullen dit appserver en database zijn), adressen van de applicatie, de PHP versie, of toegangsgegevens voor onze database.  
Vervolgens kun je de volgende command runnen:  
*lando start*

Nu kun je naar het in .lando.yml opgegeven adres navigeren en de Drupal-installatie verder blijven ontwikkelen.



 

 



 

 

 

 

 

 





 ## 6. Drush

 

Last but not least, noemen we Drush. Dit is zonder twijfel dé tool die elke Drupal developer zou moeten kennen. Drush bestaat al sinds Drupal 4.7 en wordt nog steeds telkens up to date gehouden. Op het moment van schrijven is de laatste versie 11.1.1, uitgebracht op 12 juli 2022. Met behulp van Drush kun je websites beheren door configuraties te importeren en exporteren, de database bij te werken of de cache op te schonen. Met nieuwere versies van deze tool kunnen we ook code genereren. Laten we enkele nuttige commando's overlopen:

**Cache opschonen**

- *drush cr*

**Configuratie importeren**

- *drush cim*

**Configuratie exporteren**

- *drush cex*

**Aanmaken van een eenmalige login link**

- *drush uli*

**Module inschakelen**

- *drush en module\_name*

**Module uitschakelen en verwijderen**

- *drush pmu module\_naam*

**Database bijwerken**

- *drush updb*

**Watchdog controleren (dblog module)**

- *drush ws*

Wat betreft het genereren van code hebben we veel opties om uit te kiezen. We raden aan het commando

- *drush genererate*

Vervolgens kun je op zoek gaan naar de optie die jij op dat moment heet meest passend/nodig acht.



 

 



 

 

 

 

 

 





 ## Hoe verder door te groeien als Drupal developer?

 

We hebben nu enkele interessante tools doorgenomen die jij kunt gaan gebruiken bij het werken met Drupal. Zoals we kunnen zien, kan het hele proces van Drupal development een stuk gemakkelijker en overzichterlijker worden, mits je de juiste tools op de goede manier weet in te zetten. Dus of jij nou zelf developer bent en je kennis op het gebied van Drupal ietwat wil bijspijkeren, of uiteindelijk zelf wil uitgroeien tot Drupal developer, het is absoluut de moeite waar om de tijd te nemen om deze oplossingen te verkennen. Indien dat laatste voor jou opgaat, is het bovendien aan te raden een stage te doorlopen kantoor waar enkel en alleen Drupal specialisten rondlopen. VDMi, gelegen in Rotterdam, is zo’n kantoor. Wij bieden jou graag een stage, waarin je je kunt ontwikkelen en bewijzen dat jij het in je hebt om te werken aan de tofste projecten. Veel van onze stagiairs blijven na hun stage immers bij ons werken en hebben bijgedragen aan het ontwikkelen van bijvoorbeeld een website voor de tweede kamer, een sociaal intranet voor de KNVB en een geheel nieuwe corporate website voor de Autoriteit Persoonsgegevens. De mogelijkheden zijn eindeloos!



 

 



Ben jij leergierig op het gebied van Drupal en wil jij binnen de kortste keren een steentje kunnen bijdragen aan projecten zoals de bovengenoemde? Neem dan contact met ons op! We bespreken graag de mogelijkheden met je! Je kunt altijd mailen via <info@vdmi.nl> of tijdens kantooruren bellen naar 010 486 0118. We kijken ernaar uit om je te spreken!



 

 [ Neem contact met ons op!    ](/contact)