我创建了一个类似的模块:
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添加路由。
请告诉我。提前致谢
答案 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',
],
]
];