yiisoft / factory
Yii 工厂
1.2.0
2023-12-03 05:59 UTC
Requires
- php: ^8.0
- psr/container: ^1.0|^2.0
- yiisoft/definitions: ^1.0|^2.0|^3.0.1
Requires (Dev)
- maglnet/composer-require-checker: ^4.2
- phpunit/phpunit: ^9.5
- rector/rector: ^0.18.0
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30|^5.4
- yiisoft/test-support: ^1.3
This package is auto-updated.
Last update: 2024-08-31 13:47:26 UTC
README
Yii 工厂
此包提供抽象对象工厂,允许通过给定的定义创建对象,并通过PSR-11容器解决依赖。
要求
- PHP 8.0 或更高版本。
安装
可以使用Composer安装此包
composer require yiisoft/factory
通用用法
如果您需要使用定义语法创建对象,并希望为创建的对象配置默认值,那么工厂非常有用。
$container = new PSR11DependencyInjectionContainer(); $factoryConfig = [ EngineInterface::class => [ 'class' => EngineMarkOne::class, '__construct()' => [ 'power' => 42, ], ] ]; $factory = new Factory($container, $factoryConfig); $one = $factory->create(EngineInterface::class); $two = $factory->create([ 'class' => EngineInterface::class, '__construct()' => [ 'power' => 146, ], ]);
在上面的代码中,我们定义了工厂配置,指定当我们需要EngineInterface
时,将创建一个EngineMarkOne
实例,其power
构造函数参数等于42。我们还指定,创建的对象请求的所有依赖项都应由PSR11DependencyInjectionContainer
解决。
第一次调用create()
使用EngineInterface
的默认配置。第二次调用指定了power
构造函数参数的自定义配置。在这种情况下,指定的配置与默认配置合并,当键名相同时会覆盖其键值。
生产环境调整
默认情况下,工厂在设置定义时验证定义。在生产环境中,通过将false
作为第三个构造函数参数传递,可以将其关闭。
$factory = new Factory($container, $factoryConfig, false);
文档
如果您需要帮助或有任何问题,Yii 论坛是一个很好的地方。您还可以查看其他Yii 社区资源。
许可
Yii 工厂是自由软件。它根据BSD许可证发布。有关更多信息,请参阅LICENSE。
由Yii Software维护。