2010-10-20 102 views
2

我嘗試按照本教程中,但我不能得到它的工作:Zend框架Widget教程問題

http://weierophinney.net/matthew/archives/246-Using-Action-Helpers-To-Implement-Re-Usable-Widgets.html

我做的一切所描述的,但我不知道如何使它在我的控制器中可用。我的文件系統看起來像這樣:

- application 
    - controllers 
     - IndexController.php 
    - modules 
     - user 
      - configs 
       user.ini 
      - controllers 
      - forms 
       Login.php 
      - helpers 
       HandleLogin.php 
      - views 
       - scripts 
        login.phmtl 
        profile.phtml 
      Bootstrap.php 
    - views 

如何在我的IndexController中使用HandleLogin Helper?我真的不知道,我正在尋找更多的一天,我幾乎想把我的電腦扔出窗外;)。所以任何幫助將不勝感激!

回答

2

貌似小工具插件沒有任何地方叫配置。

幾項檢查:

  1. 你有Bootstrap.php文件該模塊
  2. 這個引導文件有_initWidgets()方法嗎?
  3. 是否調用此方法:

    $widget = new Module_Widget_Name; // is it callable?
    Zend_Controller_Action_HelperBroker::addHelper($widget);

  4. 你有沒有註冊的構件資源?

    public function _initResourceLoader()
    {
    $loader = $this->getResourceLoader();
    $loader->addResourceType('helper', 'helpers', 'Helper');
    $loader->addResourceType('widget', 'widgets', 'Widget');

    return $loader; 
    

    }

  5. 是否application.ini包含resources.modules[] =線?

+0

是的,有一個引導文件(請參閱我的原始文章)。我添加了你提到的方法。我想_initResourceLoader()也應該在模塊引導文件中?但我認爲主要的問題是模塊的完整引導文件沒有執行,所以添加方法似乎至少對我來說沒用。或者我錯過了什麼? – 2010-10-22 13:56:11

+0

@Stegeman我又增加了一點檢查。如果你根本不使用模塊,你也可以使用主引導文件。 – takeshin 2010-10-23 11:02:18

+0

我不知道哪一個解決了我的問題,但我設法用上面的一個檢查來解決它。謝謝! – 2010-10-26 13:11:30

0

你沒有。本教程的要點是創建一個獨立於任何特定控制器運行的可重用小部件。當應用程序接收到請求時,它將運行調度週期並自動觸發preDispatch上的操作助手:

現在,我們來看看操作助手本身。提醒一下,動作助手可以定義init()的鉤子(每當它傳遞給新控制器時,由helper broker調用),preDispatch()(在執行控制器的preDispatch()鉤子並執行動作之前調用) ,和postDispatch()(在動作和控制器的postDispatch()例程之後執行)。

的助手將獲取電流控制器(兩者可能對這一請求),以獲取視圖實例,並與形式

+0

問題是,當我嘗試在我的IndexController中加載動作時,什麼也沒有發生。即使我將這些語句放在例如helper/HandleLogin.php中,也沒有任何反應。所以代碼只是沒有執行。有任何想法嗎? – 2010-10-21 07:12:27

+0

*沒有任何反應*你的意思是*什麼都沒有*或沒有插件?你能否驗證該模塊實際上是[識別並加載到你的主引導程序中](http://framework.zend.com/manual/en/zend.application.available-resources.html#zend.application.available-resources.modules 「Zend_Application模塊上的ZF參考指南」)? – Gordon 2010-10-21 07:25:03

+0

頁面加載時應該加載,只有幫助程序不會執行。如果我將控制器添加到模塊並嘗試訪問它,它就可以工作。所以我認爲這意味着模塊正確加載。順便說一句,有沒有更好的方法來檢查這個? – 2010-10-21 07:28:34