2010-09-02 46 views
1

我正在使用Zend_Layout作爲我的Zend Framework應用程序的佈局。這非常簡單,但我仍然需要在佈局中執行一些操作。目前,代碼包含在PHP括號中,但我覺得這不是最乾淨的方法。將Zend Framework中佈局所需的代碼放在哪裏?

我看到有人使用插件,但我不認爲這是我想要的方式。顯然,我可以提取「複雜」的部分,以一個很好的動作/控制器的方式進行操作,並在佈局中使用佔位符。這是要走的路嗎?你有這樣的例子嗎(例如導航菜單委託在自己的行動)?

回答

1

正如takehin所說,導航()佔位符可能是要走的路。但是,我不想爲這個特殊情況設置Zend_Navigation,所以我使用了custom view helper

application/views/helpers/Menu.php

<?php 

class Zend_View_Helper_Menu extends Zend_View_Helper_Abstract { 

    public function menu() { 
     // my code ... 
     $this->view->menu = $menu; 

     return $this->view->render('helpers/menu.phtml'); 
    } 

} 

application/views/scripts/helpers/menu.phtml

... 
<div id="menu"> 
    <?php echo $this->menu(); ?> 
</div> 
... 

<ul> 
    <?php foreach ($this->menu as $item) { // print menu } ?> 
</ul> 

這樣一來,我可以簡單地從我的佈局調用這個幫手

3

navigation()是佔位符視圖助手的具體實現。

您可以創建相同的佔位符執行,或使用

  • 包括( 'myhtml.phtml');
  • $this->render('script.phtml');
  • 諧音
  • partialLoops
  • 佔位符
  • 視圖助手

這取決於你需要什麼。

行動堆棧是邪惡的,你可能已經聽說過。

相關問題