在Zend框架2中的src /文件夹中创建控制器的规则是什么?

时间:2014-02-19 06:37:52

标签: php zend-framework2

我创建了一个类似的模块:

module/
    Album/
        config/
        src/
            Album/
                Controller/
                    IndexController.php
        view/

ZF2 的src / Album / Controller下,是否只有在模块内创建控制器的地方?

我想在src / like下为管理任务创建与我的模块(相册)相关的控制器

module/Album/src/Admin/Controller/AdminController.php

有可能吗?如果可以,我该如何从module.config.php添加路由。

请告诉我。提前致谢

2 个答案:

答案 0 :(得分:1)

没有任何名称控制器规则,因为您在module.config.php中为路由定义控制器,然后在控制器插件管理器中定义。

例如,您定义路线:

return [
   'router' => [
       'routes' => [
          'Album' => [
              'type' => 'Segment',
              'options' => [
                  'route' => 'album',
                  'defaults' => [
                      'controller' => 'album'
                  ]
              ]
          ]
       ]
   ]
];

现在,在module.config.php中的controllers键下定义控制器。

return [
   'controllers' => [
       'invokables' => [
            'album' => 'Album/Controller/AlbumController'
        ],
        'factories' => [
             // you do not need this. It is a advanced concept
        ]
    ]
];

出于管理目的:

出于行政目的,你可以这样做,但你很自在。我通常做的就像Album\Controller\Backend\AlbumController

答案 1 :(得分:0)

理想情况下,最常见的做法是将控制器置于module/Album/src/Admin/Controller/AdminController.php

之下

为了声明这个控制器,最好的方法是使用模块命名空间,因此可以在代码中轻松识别:

return [
   'controllers' => [
       'invokables' => [
            'Admin/Controller/Admin' => 'Admin/Controller/AdminController',
        ],
    ]
];

在您的情况下,AdminController似乎是Admin模块的默认控制器,因此您可以将其重命名为IndexController,因为它是默认控制器的通用名称:

return [
       'controllers' => [
           'invokables' => [
                'Admin/Controller/Index' => 'Admin/Controller/IndexController',
            ],
        ]
    ];