如何在Zend Framework 2中配置依赖注入?

Ste*_*ley 2 php dependency-injection twig zend-framework2

免责声明:我是Zend的完全菜鸟.

我正在评估Zend Framework 2的工作,并尝试将其配置为使用ZfTwig进行模板化.(见这里:https://github.com/mtymek/ZfTwig)

我完成Step 3了配置确定,但我无法弄明白Step 4.

我尝试将以下内容放入application.config,但没有好处.

我应该把它放在哪里?

return array(
    'di' => array(
        'instance' => array(
            // setup other stuff...
            // ...

            // setup view script resolvers - very similar to configuration
            // from ZendSkeletonApplication
            'Zend\View\Resolver\AggregateResolver' => array(
                'injections' => array(
                    'Zend\View\Resolver\TemplateMapResolver',
                    'ZfTwig\TemplatePathStack',
                ),
            ),
            'Zend\View\Resolver\TemplateMapResolver' => array(
                'parameters' => array(
                    'map'  => array(
                        'layout/layout' => __DIR__ . '/../view/layout/layout.twig',
                    ),
                ),
            ),
            'ZfTwig\TemplatePathStack' => array(
                'parameters' => array(
                    'paths'  => array(
                        'application' => __DIR__ . '/../view',
                    ),
                ),
            ),
            // Tell TwigRenderer how it should locate .twig files
            'ZfTwig\TwigRenderer' => array(
                'parameters' => array(
                    'resolver' => 'Zend\View\Resolver\AggregateResolver',
                ),
            ),
        ),
    );
Run Code Online (Sandbox Code Playgroud)

Google没有帮助......我在Zend的网站上找不到任何文档,或者在任何地方告诉我这应该去哪里.

谢谢您的帮助!

Jur*_*man 6

di配置是从Zend框架2的第一测试版Zend\Di是一个组件仍然可用,但是在内部(与许多其他模块)所取代Zend\ServiceManager.

基本上,两者都能够提供依赖注入.只有Zend\Di它可以自动执行此类操作,并且Zend\ServiceManager还有其他选项可以使依赖项注入更加明确.

为了回答你的问题:ZfcTwig现在是ZF-Commons的一部分,https://github.com/ZF-Commons/ZfcTwig是你现在要搜索的位置.仅为了您的见解,此文件是服务管理器使用的工厂的示例.有关Zend Framework 2中服务经理的更多背景知识,我在两个月前撰写了一篇可能很有趣的博客文章.