Dependency Injection is een softwareontwerppatroon dat wordt gebruikt in Drupal CMS en waarmee componenten van elkaar kunnen worden losgekoppeld. Het is een manier om een component te voorzien van zijn afhankelijkheden, in plaats van de component deze zelf te laten zoeken. Dit maakt het gemakkelijker om de code te onderhouden en te testen, en maakt deze flexibeler en uitbreidbaar.
In Drupal wordt Dependency Injection gebruikt om componenten te voorzien van de services die ze nodig hebben om te functioneren. Dit wordt gedaan door de services als argumenten door te geven aan de constructor van de component. Hierdoor kan de component in verschillende contexten worden gebruikt, omdat de services kunnen worden gewijzigd zonder dat de component zelf hoeft te worden gewijzigd.
Dependency Injection wordt ook gebruikt om componenten van configuratieopties te voorzien. Dit wordt gedaan door een configuratieobject door te geven aan de constructor van de component. Hierdoor kan de component in verschillende contexten worden gebruikt, omdat de configuratie kan worden gewijzigd zonder dat de component zelf hoeft te worden gewijzigd.
Dependency Injection is een belangrijk onderdeel van de architectuur van Drupal, omdat componenten hierdoor van elkaar kunnen worden losgekoppeld en het onderhoud en testen van de code eenvoudiger wordt. Het maakt het ook gemakkelijker om de code uit te breiden en aan te passen, omdat componenten eenvoudig kunnen worden vervangen door verschillende implementaties.