在zf2中放置带有实用方法的类的位置?

时间:2014-04-07 15:55:29

标签: zend-framework2

我正在使用zend framework 2.x,我想知道在哪里放置一个实用程序类?它既不是控制者也不是实体?!在Java中,我会在源文件夹主程序包下创建一个包实用程序。

2 个答案:

答案 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

但是,如果代码将在应用程序的模块之间共享,则应创建一个公共模块或将文件放在应用程序模块中的同一级别