我正在使用zend framework 2.x,我想知道在哪里放置一个实用程序类?它既不是控制者也不是实体?!在Java中,我会在源文件夹主程序包下创建一个包实用程序。
答案 0 :(得分:0)
1-语言的常用服务(可在控制器,动作,视图中访问)
phtml文件的2-“视图助手”或“占位符”(查看脚本)
在视图助手中,您可以访问数据库,例如MenuHelper。我建议不同的地方采用不同的解决方案。
public function getServiceConfig() {
return array(
'factories' => array(
'commentRepository' => function ($sm) {
$em = $sm->get('doctrine.entitymanager.orm_default');
$comment_repository = $em->getRepository('Comment\Entity\Comment');
return $comment_repository;
},
'commentService' => function ($sm) {
$comment_service = new Service\CommentService();
$comment_service->setRepository($sm->get('commentRepository'));
return $comment_service;
}
),
);
}
public function getViewHelperConfig() {
return array(
'factories' => array(
'commentList' => function ($helpers) {
$locator = $helpers->getServiceLocator();
$viewHelper = new View\Helper\CommentList();
$viewHelper->setCommentService($locator->get('commentService'));
return $viewHelper;
},
)
);
}
你想在某些地方使用它吗?
答案 1 :(得分:0)
我通常在控制器目录的同一级别创建一个文件夹:
src/ModuleNameSpace/Controller
src/ModuleNameSpace/Utilities
但是,如果代码将在应用程序的模块之间共享,则应创建一个公共模块或将文件放在应用程序模块中的同一级别