injections[$name] = $object; } public function __construct() /** @phpstan-ignore-line */ { $this->init(); } protected function init() /** @phpstan-ignore-line */ { } public function __call($methodName, $args) /** @phpstan-ignore-line */ { if (strpos($methodName, 'get') === 0) { $injectionName = lcfirst(substr($methodName, 3)); if (in_array($injectionName, $this->dependencyList)) { return $this->getInjection($injectionName); } } throw new \BadMethodCallException('Method ' . $methodName . ' does not exist'); } protected function getInjection($name) /** @phpstan-ignore-line */ { return $this->injections[$name] ?? $this->$name ?? null; } protected function addDependency($name) /** @phpstan-ignore-line */ { if (in_array($name, $this->dependencyList)) return; $this->dependencyList[] = $name; } protected function addDependencyList(array $list) /** @phpstan-ignore-line */ { foreach ($list as $item) { $this->addDependency($item); } } public function getDependencyList() /** @phpstan-ignore-line */ { return $this->dependencyList; } }