【问题标题】:Where to put a class that is not a controller, module or view?将不是控制器、模块或视图的类放在哪里?
【发布时间】:2013-02-06 04:10:47
【问题描述】:
我有一个由多个模块组成的 ZF2 应用程序,我想创建一个应该可以从这些模块中的任何一个访问的 Logger 类。基本上,我希望能够使用简单的Logger::info("Something") 从任何地方登录。
目前的应用布局是这样的:
root/
module/
module1/
src/
module2/
src/
module3/
src/
放置这个新的记录器类的最佳位置是哪里?以及如何确保它可以从任何子模块访问?
【问题讨论】:
标签:
class
logging
module
zend-framework2
autoload
【解决方案2】:
我把大家都可以接受的通用类放在 module/Application/src/WhateverName 下
比如我把auth类放在:
module/Application/src/Application/Authentication/AuthenticationService.php
使用命名空间:
namespace Application\Authentication;
然后我在 Module.php 中定义服务
public function getServiceConfig()
{
return array(
'factories' => array(
'auth_service' => function ($sm) {
$zfauthservice = new \Zend\Authentication\AuthenticationService;
return new \Application\Authentication\AuthenticationService($zfauthservice, $sm->get('bp_user_mapper_model'));
},
);
}