Zend Framework 2 Service Manager 配置方法

我们通常会把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代码

}

时间: 2024-11-05 18:30:45

Zend Framework 2 Service Manager 配置方法的相关文章

浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路中,介绍了Service Manager是如何成为Binder机制的守护进程的.既然作为守护进程,Service Manager的职责当然就是为Server和Client服务了.那么,Server和Client如何获得S

Zend Framework 2中如何使用Service Manager

end Framework 2 使用ServiceManager(简称SM)来实现控制反转(IoC).有很多资料介绍了service managers的背景,我推荐大家看看this blog post from Evan和 this post from Reese Wilson,但是仍然有很多开发者不能够很好地使用ServiceManager去解决他们的需求.这篇文章我将解释为什么ZF2框架需要使用多个服务管理器以及怎样使用它们.主要包含以下几个方面: 这些不同的服务管理器是什么? 不同的服务管

Zend Framework 2 获取 Service Manager

在学习zend framework的时候很多的问题只能看源代码,为了加深自己的理解,记录下来平时用到的方法: 1在控制器里 $serviceLocator = $this->getServiceLocator(); 2在Module.php里 namespace ModuleName; use Zend\Mvc\MvcEvent; class Module { public function onBootstrap(MvcEvent $e) { $serviceLocator = $e->ge

zend framework多模块多Layout配置

转自: http://blog.csdn.net/a82168506/article/details/10228011 上次接触zend framework已经很久远了,10年的事情了.最近在做一个项目,时间不紧,就又把ZF拿出来折腾.而我发现以前做ZF的记忆已经在我脑中如梦幻泡影,消失无踪,为了配置多模块还又去查了资料,为了避免此种情况再次发生,做个记录吧. 首先,我们要新建一个ZF项目,目录结构如下. 我们想要配置多模块呢,首先要在,application下面建一个modules文件夹,然后

SAP Web Service简介与配置方法

p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-size: 10.5000pt } h1 { margin-top: 17.0000pt; margin-bottom: 16.5000pt; margin-left: 0.0000pt; text-indent: 21.0000pt; page-break-after: avoid; text-al

zend framework配置

当我们在开发项目时..大家都会遇到一个问题就是:数据库的编码问题.当然我们不用Zend Framework做为项目开发的框架时..我们可以很快,很容易搞定这个小问题..但是当我们要使用Zend Framewok开发项目时..我们可能一时会不知道如何解决这个小问题..比如我就是这样的人..在开发这个博客前..真的不知道如何设数据库编码..? 现在我总结一下我的经验吧..当然也是在网络上找来的答案...设定数据库编码问题很好解决.代码如下: 1 $dbAdapter=Zend_Db::factory

Zend Framework(一) windows8.1下配置zend framework1.12

windows8.1下配置zend framework1.12配置步骤: 1.     下载 zend framework1.12库 2.      创建zend frameworkproject 2.1   手工创建(麻烦) 2.2   使用zf.bat 程序创建 (1)先将php.exe进行全局配置.方法是在环境变量path中加入你的php.exe路径 ;E:/wamp/php5 (2)dos下cd进入到zend framework框架bin文件夹.即zf.bat所在文件夹 (3)使用命令

Zend framework,xampp环境下的配置

Zend framework是PHP框架,我接触php一年的时间,接触Zend framework大概两个月,入门是通过“传智播客”韩顺平的视频讲座,使用的Zend framework是1.x版的,最新的是Zend framework2.x版本.本文介绍的是1.x版本的设置方法. 1.生成zend framework文件目录.方法有很多,(1)zf命令.(2)zend studio生成项目,(3)直接拷贝现有工程目录.通常我采用拷贝现有目录的方法. zend的目录结构如下: 2(1)采用虚拟主机

在wamp5下配置zend framework有错误!

我是看IT界视频学习Zend framework,配置时出现了下面的错误,希望那位大虾指点下?index.php 错误提示:Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (index.php)' in F:\local_www\zendframework\library\Zend\Controller\Dispatc