DI

Wat is het?

Dependency Injection (DI) is een ontwerppatroon waarbij een object zijn afhankelijkheden van buitenaf krijgt geleverd in plaats van ze zelf aan te maken. Het is een concrete vorm van Inversion of Control: de verantwoordelijkheid voor het maken en configureren van services ligt bij een container of provider (bijvoorbeeld de service container in Laravel) en niet bij de consument. In backend-webontwikkeling met PHP zorgt DI ervoor dat klassen minder gekoppeld zijn, makkelijker getest kunnen worden en dat implementaties (bijv. verschillende repository- of gateway-implementaties) eenvoudig verwisseld of geconfigureerd kunnen worden.

Praktisch voorbeeld

Stel dat je in Laravel een PaymentGateway-interface hebt en meerdere implementaties (Stripe, PayPal). In een ServiceProvider bind je de interface aan een concrete klasse, bijvoorbeeld: $this->app->bind(PaymentGateway::class, StripePayment::class). Vervolgens injecteer je de interface in een controller via de constructor: public function __construct(PaymentGateway $gateway) { $this->gateway = $gateway; }. Voor testen kun je dezelfde binding overschrijven met een mock of fake zodat je controller getest kan worden zonder echte betalingen te doen. Op deze manier vermijd je het gebruik van new binnen je controller en houd je code modulair en makkelijk te vervangen.

Test je kennis

Welke uitspraak over Dependency Injection in Laravel is correct?

Vraag het aan Lex
Lex kent de context van deze term en helpt je sneller met gerichte uitleg, voorbeelden en extra context.
Tip: Lex antwoordt kort in de widget. Voor meer detail, ga naar full screen modus.

Leer onze taal

Leer deze termen van echte professionals en verdiep je skills bij KdG MCT.

Studeren bij KdG