在我的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 248In my zf application I have 3 modules:
applicant company adminAnd, in my application.ini I've picked a default module
resources.frontController.defaultModule = "applicant"So, some of controllers classes are named like:
class IndexController extends Zend_Controller_Action /* in Applicant Module */ class Company_IndexController extends Zend_Controller_Action class Admin_IndexController extends Zend_Controller_ActionSince applicant is my default module, I don't need to use module name as prefix in class name.
How can I use the prefixed way to name classes in my default module?
I want to use these class names
class Applicant_IndexController extends Zend_Controller_Action class Company_IndexController extends Zend_Controller_Action class Admin_IndexController extends Zend_Controller_Actionbut I'm getting this error:
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 )。
在基于模块的应用程序中,我个人发现使用模块名称为所有控制器添加前缀更加一致。 这是作为一个问题提交的,并通过添加前端控制器设置prefixDefaultModule 显然在版本1.5中 prefixDefaultModule 。
因此,在application/configs/application.ini ,您可以添加:
resources.frontController.prefixDefaultModule = true
我一直都在使用它,并认为它很棒。 ;-)
As you note, controller names in the default module do not require prefixing (Ex: SomeController), while controllers in non-default modules require prefixing (Ex: Admin_SomeController).
In module-based app, I personally find it more consistent to prefix all controllers with the module name. This was filed as an issue and fixed in apparently in version 1.5 by adding a front controller setting prefixDefaultModule.
So, in application/configs/application.ini, you could add:
resources.frontController.prefixDefaultModule = true
I use it all the time and think it's great. ;-)
更多推荐
发布评论