Zend Action Helper推荐的mvc文件夹结构

时间:2012-06-25 19:41:28

标签: php model-view-controller zend-framework action helper

Zend recommends将控制器动作助手放入mvc /application/controllers/helpers。这是使用这些的正确方法吗?

我是否必须在bootstrap / application.ini中实例化它们?

我的助手有直接行动,名为Controllers_Helpers_Redirectlogin

感谢您的帮助,我感谢!

1 个答案:

答案 0 :(得分:2)

遵循建议是好的。默认情况下,即使您引用的手册页指出,也不会显示自动装带器默认设置为查看推荐路径:

  

controllers / helpers / :这些目录将包含操作助手。   动作助手将命名为" Controller_Helper _ "对于   默认模块或" _Controller_Helper "在其他模块中。

要解决这个问题,只需向HelperBroker提示通过将其添加到Bootstrap.php文件中来查看的其他路径:

// for default module in a non-modular structure
Zend_Controller_Action_HelperBroker::addPath(
    APPLICATION_PATH . '/controllers/helpers',
    'Controller_Helper'
);

// for default module if using modular structure
Zend_Controller_Action_HelperBroker::addPath(
    APPLICATION_PATH . '/modules/default/controllers/helpers',
    'Controller_Helper'
);

// for "Admin" module when using a modular structure
Zend_Controller_Action_HelperBroker::addPath(
    APPLICATION_PATH . '/modules/admin/controllers/helpers',
    'Admin_Controller_Helper'
);

另请注意,要使自动装带器正常工作,您应该将课程命名为Controller_Helper_RedirectLogin而不是Controllers_Helpers_RedirectLogin。通常,自动加载的类会删除复数(例如models/User.php地图到class Model_User)。

编辑:您也可以告诉助手经纪人application.ini文件中的助手路径。例如:

; non-modular structure
resources.frontController.actionHelperPaths.Controller_Helper = APPLICATION_PATH "/controllers/helpers"

; "admin" module in a modular structure
resources.frontController.actionHelperPaths.Admin_Controller_Helper = APPLICATION_PATH "/modules/admin/controllers/helpers"