0

我的 module.config.php 文件有以下摘录:

返回数组(
    'service_manager' => 数组(
        '别名' => 数组(
            'Util\Dao\Factory' => 'modelFactory',
        ),
        '工厂' => 数组(
            'modelFactory' => 函数($sm){
                $dbAdapter = $sm->get('Doctrine\ORM\EntityManager');
                返回新的 \Util\Dao\Factory($dbAdapter);
            },
        )
    ),
    '教义' => 数组(
        '驱动程序' => 数组(
            'application_entities' => 数组(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                '缓存' => '数组',
                '路径' => 数组(
                    __DIR__ 。'/../src/应用程序/模型'
                ),
            ),
            'orm_default' => 数组(
                '驱动程序' => 数组(
                    '应用程序\模型' => 'application_entities'
                )
            ),
        ),
    ),

我如何将块“教义”放在模块类中?

4

1 回答 1

0

嗯,这实际上相当简单。可能您的 Module 类有方法getConfig()。该方法通常加载moduleName/config/module.config.php.

因此,无论您使用什么功能,只需调用- 方法即可getConfig()。这是纯粹和基本的 php ;)

//Module class
public function doSomethingAwesome() {
    $moduleConfig   = $this->getConfig();
    $doctrineConfig = isset($moduleConfig['doctrine'])
                        ? $moduleConfig['doctrine']
                        : array('doctrine-config-not-initialized');
}

但是您需要注意,这仅包括您的 Modules 配置。如果您需要访问合并的配置,则需要在onBootstrap()-method 中执行此操作。这将是这样的:

//Module class
public function onBootstrap(MvcEvent $mvcEvent)
{
    $application   = $mvcEvent->getApplication();
    $serviceLocator = $application->getServiceLocator();
    $mergedConfig   = $serviceLocator->get('config');
    $doctrineConfig = isset($mergedConfig['doctrine']) 
                        ? $mergedConfig['doctrine'] 
                        : array('doctrine-config-not-initialized');
}

如果您要附加到某些事件,则此方法类似...

于 2013-08-21T05:52:36.370 回答