タイプヒンティング・インジェクションの履歴
引数のタイプヒンティングで型を取得して、インジェクションする。
最初にInjectorの設定すればタイプヒンティング入れるだけなので、まぁ便利かも。
<?php class TypeHintingInjector{ private $objects; private $methodName; function __construct($methodName, $objects){ $this->methodName = $methodName; $this->objects = $objects; } function inject($injectee){ $refClass = new ReflectionClass($injectee); if (!$refClass->hasMethod($this->methodName)){ return; } $method = $refClass->getMethod($this->methodName); $params = $method->getParameters(); $args = array(); foreach ($params as $param){ $paramClass = $param->getClass(); $args[] = $this->getObject($paramClass->getName()); } return $method->invokeArgs($injectee, $args); } } ?>