zend-framework – 默认模块中控制器的命名空间/前缀

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了zend-framework – 默认模块中控制器的命名空间/前缀脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的zf应用程序中,我有3个模块:

>申请人
>公司
>管理员

而且,在我的application.ini中,我选择了一个认模块

resources.frontController.defaultModule = "applicant"

因此,一些控制器类的命名如下:

class IndexController extends Zend_Controller_Action /* in Applicant Module */
class Company_IndexController extends Zend_Controller_Action
class Admin_IndexController extends Zend_Controller_Action

由于申请人是我的认模块,因此我不需要在课程名称中使用模块名称作为前缀.

如何使用前缀方式在认模块中命名类?

我想使用这些类名

class Applicant_IndexController extends Zend_Controller_Action
class Company_IndexController extends Zend_Controller_Action
class Admin_IndexController extends Zend_Controller_Action

但我收到这个错误

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' wITh message 'Invalid controller sPEcified (error)' in ZenDFramework-1.11.6/library/Zend/Controller/Dispatcher/Standard.PHP on line 248

解决方法

如您所知,认模块中的控制器名称不需要前缀(Ex:SomeController),而非认模块中的控制器需要前缀(例如:Admin_SomeController).

在基于模块的应用程序中,我个人发现使用模块名称为所有控制器添加前缀更加一致.这是作为an issue提交的,并通过添加前端控制器设置PRefixDefaultModule在apparently in version 1.5中修复.

因此,在application / configs / application.ini中,您可以添加

resources.frontController.prefixDefaultModule = true

我一直都在使用它,并认为它很棒.

本图文内容来网友网络收集整理提供,作为学习参考使用,版权属于原作者。
@H_126_50@

zend-framework – 默认模块中控制器的命名空间/前缀