duyler / dependency-injection
dev-main
2024-09-24 23:34 UTC
Requires
- php: >=8.3
- psr/container: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.30
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-24 23:41:53 UTC
README
依赖注入容器
此包使得将DI容器快速连接到您的项目成为可能。
容器既可以自动模式使用,在类构造函数中使用类型提示,也可以通过提供者进行细致调整。
示例:自动创建实例
use Duyler\DI\Container; use YourClass; $container = new Container; $yourClassObject = $container->get(YouClass::class);
使用提供者创建实例
class YourClass { private MyClassInterface $myImplements; public function __construct(MyClassInterface $myImplements) { $this->myImplements = $myImplements; } }
use Duyler\DI\Provider\AbstractProvider class ClassProvider extends AbstractProvider { public function bind(): array { return [ MyClassInterface::class => MyImplemensClass::class, ]; } }
$container->addProviders([ MyClassInterface::class => ClassProvider::class, ]); $yourClassObject = $container->get(YourClass::class);
使用绑定创建实例
$container->bind([ MyClassInterface::class => MyImplemensClass::class, ]); $yourClassObject = $container->get(YouClass::class);