代码之家  ›  专栏  ›  技术社区  ›  Tim Lytle

自定义Zend_动作\控制器的正确位置

  •  1
  • Tim Lytle  · 技术社区  · 14 年前

    ZF文档参考' Subclassing the Action Controller '(页面底部),但不要引用标准位置来放置新的action_controller类。

    应用程序模块自动加载程序为一堆东西设置PATS,但从不设置控制器。我想穿上吧 library/APPNAMESAPCE/Action/Contoller 会有用的。但这似乎有点奇怪,因为每个其他特定于应用程序的文件都存储在 application/ .

    1 回复  |  直到 14 年前
        1
  •  3
  •   Tim Fountain    14 年前

    类会像其他类一样自动加载,因此没有一个“标准”的位置。所以问题是,你想让它住在哪里?

    在模块化应用程序中,我通常遵循的惯例是在模块中包含大部分内容,但是注册一个应用程序名称空间,并将应用程序/模型用于“核心”类型类。所以在你的例子中,假设你的应用程序名称空间是WordPress,你会得到:

    class Wordpress_Controller_Action extends Zend_Controller_Action
    {
    
    }
    

    文件将在application/models/wordpress/controller/action.php中保存。

    要实现这一点,您需要在include路径上使用应用程序/模型,并且您需要使用类似这样的东西初始化标准自动加载程序(在bootstrap类中):

    protected function _initAutoloader()
    {
        $autoloader = Zend_Loader_Autoloader::getInstance();
        $autoloader->registerNamespace('Wordpress_');
    
        return $autoloader;
    }
    

    或者,您可以在application.ini中设置上述内容。