Zend Framework 2 Service Manager 配置方法

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

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

Application services

ManagerApplication services
Manager classZend\ServiceManager\ServiceManager
Config keyservice_manager
Module methodgetServiceConfig()
Module interfaceServiceProviderInterface
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

ManagerControllers
Manager classZend\Mvc\Controller\ControllerManager
Config keycontrollers
Module methodgetControllerConfig()
Module interfaceControllerProviderInterface
Service nameControllerLoader
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

ManagerController plugins
Manager classZend\Mvc\Controller\PluginManager
Config keycontroller_plugins
Module methodgetControllerPluginConfig()
Module interfaceControllerPluginProviderInterface
Service nameControllerPluginManager
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

ManagerView helpers
Manager classZend\View\HelperPluginManager
Config keyview_helpers
Module methodgetViewHelperConfig()
Module interfaceViewHelperProviderInterface
Service nameViewHelperManager
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代码
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值