knobsam / easy-config
此软件包已被废弃且不再维护。作者建议使用knobsam/easy-config软件包。
Zend Framework 2 (zf2) 模块,用于检索特定模块选项,并提供一些抽象工厂以轻松根据配置创建实例。
1.3.0
2016-05-18 06:43 UTC
Requires
- php: ~5.3|~7.0
- zendframework/zend-servicemanager: ~2.2
Requires (Dev)
Suggests
- zendframework/zend-stdlib: Zend\StdLib for AbstractOptionHydratorConfigFactory
Replaces
- sandrokeil/easyconfig: 1.3.0
This package is not auto-updated.
Last update: 2018-01-31 13:18:22 UTC
README
您想通过模块配置来配置您的工厂吗?
您想通过模块配置来配置插件管理器的选项类吗?
您想通过模块配置向工厂添加其他服务吗?
此模块将提供帮助!
EasyConfig 提供了一些抽象工厂和一些接口,可以轻松根据配置创建实例或检索指定的模块选项。
- 经过良好测试。 除了单元测试和持续集成/检查之外,此解决方案也适用于生产使用。
- 良好的基础。 基于Zend Framework 2。
- 所有更改都有记录。 想知道有哪些新功能?请查看CHANGELOG.md。
- 倾听您的想法。 有一个好主意?请提交经过测试的拉取请求或打开一个新的问题。
您应该有代码约定,也应该有配置约定。如果没有,您应该考虑这一点。
模块配置键应该具有以下结构 module.scope.name
。常见的配置看起来像这样
return array( 'doctrine' => array( 'connection' => array( 'orm_default' => array( 'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 'params' => array(...) ) ) ) );
因此,doctrine
是模块,connection
是作用域,orm_default
是名称。之后是特定的实例选项。通过 AbstractConfigurableFactory 我们可以轻松访问这些选项,也可以使用选项类和强制选项检查。有关详细说明,请参阅文档。
use Sake\EasyConfig\Service\AbstractConfigurableFactory; use Sake\EasyConfig\Service\OptionsClassInterface; use Sake\EasyConfig\Service\MandatoryOptionsInterface; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; class MyDBALConnectionFactory extends AbstractConfigurableFactory implements FactoryInterface, OptionsClassInterface, MandatoryOptionsInterface { public function createService(ServiceLocatorInterface $serviceLocator) { // get option class for doctrine.connection.orm_default // dont implement OptionsClassInterface to get an array of options $options = $this->getOptions($serviceLocator); // so you can do $pdo = $options->getPdo(); $driverClass = $options->getDriverClass(); $wrapperClass = $options->getWrapperClass(); // create your instance return $instance; } /** * Returns a list of mandatory options which must be available * * @return array */ public function getMandatoryOptions() { return array( 'driverClass', 'params', ); } /** * Return the option class name (fcqn) where options are injected via constructor * * @return string */ public function getOptionsClass() { return '\DoctrineORMModule\Options\DBALConnection'; } /** * Module name * * @return string */ public function getModule() { return 'doctrine'; } /** * Config scope * * @return string */ public function getScope() { return 'connection'; } /** * Config name * * @return string */ public function getName() { return 'orm_default'; } }
安装
此模块的安装使用 composer。有关 composer 文档,请参阅getcomposer.org。
在您的 composer.json 中添加以下内容
{
"require": {
"sandrokeil/easy-config": "~1.0"
}
}
无需将此模块添加到您的 config/application.config.php
。
文档
您可以在以下链接中找到有关工厂使用的文档