tomrf / autowire
从PSR-11容器中进行自动装配依赖注入
0.1.2
2023-08-02 13:19 UTC
Requires
- php: ^8.0
- psr/container: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.15
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^1.6
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
- tomrf/readme-gen: ^0.0
README
A simple PHP library that facilitates autowired dependency injection by fetching class constructor dependencies from one or more PSR-11 containers.
Autowire uses the PHP reflection API to peek at constructor parameter types and injects required and optional dependencies from assigned containers.
📔 转到文档
安装
通过composer安装
composer require tomrf/autowire
使用方法
$autowire = new \Tomrf\Autowire\Autowire(); $instance = $autowire->instantiateClass(MyClassWithDependencies::class, $container);
测试
composer test
许可证
本项目采用MIT许可证(MIT)发布。更多信息请参阅LICENSE。
文档
📂 Tomrf\Autowire\Autowire::class
最小化类,通过自动装配从PSR-11容器中注入类构造函数依赖以实现依赖注入。
resolveDependencies()
返回一个类构造函数的已解析依赖数组。
从一个或多个PSR-11容器中解析依赖。
如果使用可用容器无法满足所需依赖,则抛出AutowireException。
public function resolveDependencies( object|string $classOrObject, Psr\Container\ContainerInterface $containers ): array @throws \Tomrf\Autowire\AutowireException @return (null|object)[]
instantiateClass()
在成功解析所有必需依赖后,返回一个类的实例。
如果类不存在或使用可用容器无法满足所需依赖,则抛出AutowireException。
public function instantiateClass( string $class, Psr\Container\ContainerInterface $containers ): object @throws \Tomrf\Autowire\AutowireException
listDependencies()
返回一个数组,其中包含给定类或对象/调用的所有依赖(方法参数)和相关属性。
public function listDependencies( object|string $classOrObject, string $methodName = '__construct' ): array @throws \Tomrf\Autowire\AutowireException @return array<string,bool|string>[] Array of parameters with attributes
2022-06-28T01:41:09+02:00使用📚tomrf/readme-gen生成