首页 > 其他 > 详细

Zend Framework 2 Service Manager 配置方法

时间:2015-01-23 18:26:14      阅读:210      评论:0      收藏:0      [点我收藏+]

我们通常会把Service Manager配置在两个地方

1.module.config.php
2.Module.php
不同的service manager 类型有不同的配置方法

Application services

Manager Application services
Manager class Zend\ServiceManager\ServiceManager
Config key service_manager
Module method getServiceConfig()
Module interface ServiceProviderInterface
moduel.config.php
// Application/config/module.config.php
return array(
   ‘service_manager‘ => array(
       ‘factories‘ => array(
           ‘translator‘ => ‘Zend\I18n\Translator\TranslatorServiceFactory‘,
           ‘Application\Header\Navigation‘ => ‘Application\Navigation\HeaderNavigationFactory‘
       ),
       // 也可以添加其他服务
   ),
   // 省略其他module.config.php代码
);
Moduel.php
// Application/Module.php
class Module{
    public function getServiceConfig(){
        return array(
            ‘invokables‘ => array(   ),
            // 也可以添加其他服务
        );
    }
    // 省略其他Module.php代码
}

Controllers

Manager Controllers
Manager class Zend\Mvc\Controller\ControllerManager
Config key controllers
Module method getControllerConfig()
Module interface ControllerProviderInterface
Service name ControllerLoader

module.config.php

// Application/config/module.config.php
return array(
   ‘controllers‘ => array(
        ‘invokables‘ => array(
            ‘Application\Controller\Index‘ => ‘Application\Controller\IndexController‘,
        )
        // 也可以添加其他服务
    ),
   // 省略其他module.config.php代码
);

Module.php

// Application/Module.php
class Module{
    // 通过mvc自动调用,没必要通过get手动调用
    public function getControllerConfig()
    {
        return array(
            ‘invokables‘ => array(
                ‘Application\Controller\Index‘ => ‘Application\Controller\IndexController‘,
            ),
            // 也可以添加其他服务
        );
    }
    // 省略其他Module.php代码
}

Controller plugins

Manager Controller plugins
Manager class Zend\Mvc\Controller\PluginManager
Config key controller_plugins
Module method getControllerPluginConfig()
Module interface ControllerPluginProviderInterface
Service name ControllerPluginManager

module.config.php

// Application/config/module.config.php
return array(
   ‘controller_plugins‘ => array(
        ‘factories‘ => array(
            ‘MyModule\Controller\Plugin\Foo‘ => function($sm) {
                $plugin = new Plugin\Foo;
                $cache = $sm->get(‘my-cache‘);
                $plugin->setCache($cache);
                return $plugin;
            },
        ),
        // 也可以添加其他服务
    ),
   // 省略其他module.config.php代码
);

Module.php

// Application/Module.php
class Module{
    public function getControllerPluginConfig()
    {
        return array(
            ‘invokables‘ => array(
                 // ...
            ),
            // 也可以添加其他服务
        );
    }
    // 省略其他Module.php代码
}

View helpers

Manager View helpers
Manager class Zend\View\HelperPluginManager
Config key view_helpers
Module method getViewHelperConfig()
Module interface ViewHelperProviderInterface
Service name ViewHelperManager

module.config.php

// Application/config/module.config.php
return array(
   ‘view_helpers‘ => array(
        ‘factories‘ => array(
            ‘ApplicationHelper‘ => function  ( $helperPluginManager ) {
                // ....
            }
        )
        // 也可以添加其他服务
    ),
   // 省略其他module.config.php代码
);

Module.php

// Application/Module.php
class Module{
    public function getViewHelperConfig()
    {
        return array(
            ‘factories‘ => array(
                ‘ApplicationHelper‘ => function  ( $helperPluginManager ) {
                    // ....
                }
            ),
            // 也可以添加其他服务
        );
    }
    // 省略其他Module.php代码
}

Zend Framework 2 Service Manager 配置方法

原文:http://blog.csdn.net/benshuhuai/article/details/43057737

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!