Zend Framework中 - > partial()方法的实现在哪里?

时间:2013-01-08 20:35:13

标签: zend-framework partial-views zend-view

我正在尝试找到Zend实现partial()方法的位置,以便我可以在其中添加一些ACL代码以进行权限控制。我知道该方法的调用对象始终是Zend_View对象,我看,但是它中似乎缺少部分方法(以及它继承/实现的所有类/接口)。

有人知道Zend_View如何获取该方法吗?

对于那些有优化意识且渴望告诉我应该使用render()的人来说,有问题的部分需要变量输入,因为它们扮演与表行部分相同的角色。除非你能告诉我如何用render()方法做到这一点,否则请保持主题。

另外,我不打算直接修改Zend Framework代码,我只想覆盖实现,但我也希望看到我重写的方法,以便我可以看到我正在使用的内容。

1 个答案:

答案 0 :(得分:1)

如何编写自己的帮助程序并覆盖默认帮助程序

由于我们正在讨论视图助手,因此可以在library\Zend\View\Helper\Partial.php中找到它的代码。如果要更改部分视图帮助程序的功能,请编写自己的帮助程序:

class MyProject_View_Helper_MyHelper extends Zend_View_Helper_Abstract {}

class MyProject_View_Helper_MyHelper implements Zend_View_Helper_Interface {}

然后将此帮助程序添加到帮助程序堆栈中,方法是将其添加到配置中。

resources.view.helperPath.MyProject_View_Helper_ = "MyProject/View/Helper/"

如果你打电话给你的助手Partial,你可以完全覆盖默认的部分助手。

另见blog about view helpers by Akrabat

而且,用你的话来说......

...... Zend_View如何获取部分方法

如果已注册帮助程序,则可以从视图中调用它,因为Zend_View_Abstract中的以下代码

/**
 * Accesses a helper object from within a script.
 *
 * If the helper class has a 'view' property, sets it with the current view
 * object.
 *
 * @param string $name The helper name.
 * @param array $args The parameters for the helper.
 * @return string The result of the helper output.
 */
public function __call($name, $args)
{
    // is the helper already loaded?
    $helper = $this->getHelper($name);

    // call the helper method
    return call_user_func_array(
        array($helper, $name),
        $args
    );
}