Schnell eine Klasse instantiieren, die Drupals Dependency Injection verwendet

Geschrieben von patrick am Mo., 13.02.2017 - 11:16 Uhr

Ab und zu möchtest du vielleicht an einer ungewöhnlichen Stelle eine Instanz von einer Klasse erstellen, die das ContainerInjectionInterface verwendet. Nehmen wir einmal an, dass wir eine Klasse mit dem Namen ExampleController erstellt haben, die die Klasse ControllerBase erweitert, und das wir davon irgendwo eine neue Instanz erstellen möchten. Es ist tatsächlich relativ einfach: Wir lassen uns den Container geben und erstellen eine neue Instanz:

use Drupal\example\Controller\ExampleController;
 
$container = \Drupal::getContainer(); 
$exampleController = ExampleController::create($container);

Et voilà!

Systeme
Drupal 8/9