一千萬個為什麽

搜索

Zend框架 - 擴展控制器

我想讓我的控制器 - 即Page_IndexController - 擴展一個基礎控制器。

例如;

class Page_IndexController extends Content_IndexController {
}

However, it seems the autoloader doesn't pick up the fact it's a controller class at any point - I get the error Fatal error: Class 'Content_IndexController' not found

第一個問題:我如何解決這個問題?

我可以通過require_once'ing通用'content'控制器來暫時解決此問題,但這並不理想。

下一個問題是,如果我的頁面控制器具有它自己的操作視圖腳本,它沒有問題。

但是如果我擴展一個控制器,並且我在頁面控制器上調用了'listAction',但是這個操作在 Content_IndexController 中實現,它仍然在頁面控制器中尋找列表視圖腳本“腳本“目錄。

第二個問題:如果我的控制器沒有自己的父級視圖腳本,我該如何配置我的控制器?

最佳答案

如果您的應用程序可以找到Page_IndexController,那麽您可能有一個Page模塊。如果你的應用程序中沒有使用模塊,你必須命名你的控制器PageController和ContentController,而不是Page_IndexController,...因此解決方案是使用自動加載器註冊“Content_”命名空間。

至於第二個問題。您可以擴展提供的ViewRenderer控制器動作助手,並覆蓋查找視圖腳本的方法,以便在需要時可以在其他位置查找。你只需要將你的viewrenderer傳遞給前端控制器。要將您自己的ViewRenderer傳遞給控制器​​,請查看高級使用示例

轉載註明原文: Zend框架 - 擴展控制器