bartfeenstra / dependency-retriever
此包已被弃用且不再维护。没有建议的替代包。
0.4.3
2016-03-25 08:26 UTC
Requires
- php: ~5.6 || ~7.0
Requires (Dev)
- phpunit/phpunit: ~5.2
- squizlabs/php_codesniffer: ~2.5
Suggests
- bartfeenstra/dependency-retriever-symfony-bridge: Retrieves dependencies from Symfony's service container.
- drupal/retriever: Retrieves dependencies from Drupal.
README
此包是一个工具,用于简化依赖注入和类实例化。其API允许通过工厂自动发现和注入类的依赖。
检索器可以帮助你注入依赖,即使你无法或不想从调用代码中注入,也可以根据类作者的建议来检索它们。
use Psr\Log\LoggerInterface; class Bar { /** * @suggestedDependency drupalContainerService:logger.channel.form $formLogger */ public function __construct(LoggerInterface $formLogger, $severity) { // ... } }
当在具有Drupal服务容器的系统中使用时,对于$formLogger
参数,logger.channel.form
服务是建议的依赖。drupalContainerService
检索器可以检索此依赖并将其提供给工厂,以便在类实例化期间注入。
$factory = new SimpleFactory(new AnnotatedFinder(), new DrupalContainerServiceRetriever()); $bar = $factory->instantiate(Bar::class, [ 'severity' => LogLevel::WARNING, ]);
在这个例子中,使用覆盖的依赖(值)$severity
实例化了Bar
,但AnnotatedFinder
和假设的DrupalContainerServiceRetriever
根据Bar
的@suggestedDependency
注解为工厂提供$formLogger
的依赖。