1

我将 Zend_Layout 用于 Zend Framework 应用程序的布局。很简单,但是在布局中我还有一些操作需要做。目前,代码包含在 PHP 括号之间,但我觉得这并不是最干净的方法。

我看到人们使用插件,但我认为这不是我想要的方式。显然,我可以提取“复杂”部分,以一种不错的动作/控制器方式进行操作,并在布局中使用占位符。这是要走的路吗?你有这样的例子吗(例如导航菜单在它自己的操作中被委托)?

4

2 回答 2

3

navigation()是占位符视图助手的具体实现。

您可以创建相同的占位符实现,或使用

  • 包括('myhtml.phtml');
  • $this->render('script.phtml');
  • 部分
  • 部分循环
  • 占位符
  • 查看助手

这取决于你需要什么。

正如您可能已经听说过的那样,动作堆栈是邪恶的。

于 2010-09-02T10:34:01.010 回答
1

正如 Takeshin 所说,navigation() 占位符可能是要走的路。但是,我不想针对这种特殊情况进行 Zend_Navigation 的设置,所以我使用了自定义视图助手

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

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

这样,我可以简单地从我的布局中调用这个助手:

...
<div id="menu">
    <?php echo $this->menu(); ?>
</div>
...
于 2010-09-06T06:55:51.520 回答