Php 我应该将视图助手所需的视图脚本放在哪里(使用Zend_视图和默认目录布局)?

Php 我应该将视图助手所需的视图脚本放在哪里(使用Zend_视图和默认目录布局)?,php,zend-framework,zend-view,Php,Zend Framework,Zend View,我的应用程序有一个相对复杂的部分,它是访问控制列表的编辑器。我需要在一些地方重用它,并且我希望它能够加载所有ajax-y之类的东西 因为我需要经常使用它,我想把它变成Zend_View_助手。这很简单——只需放置$view->setHelperPath(应用程序路径'/views/helpers',Cas\u视图\u Helper')在视图的引导程序中,所有似乎都与加载视图帮助器有关 但是,帮助器确实应该使用视图脚本输出。是否有一个标准的位置可以放置它?您可以使用 $view->addSc

我的应用程序有一个相对复杂的部分,它是访问控制列表的编辑器。我需要在一些地方重用它,并且我希望它能够加载所有ajax-y之类的东西

因为我需要经常使用它,我想把它变成Zend_View_助手。这很简单——只需放置
$view->setHelperPath(应用程序路径'/views/helpers',Cas\u视图\u Helper')在视图的引导程序中,所有似乎都与加载视图帮助器有关

但是,帮助器确实应该使用视图脚本输出。是否有一个标准的位置可以放置它?

您可以使用

$view->addScriptPath('/path/to/shared/view/scripts')


另外,请查看Zend_Paginator如何处理局部视图渲染。

在视图文件夹中,您可以创建文件夹辅助程序。您可以在这里放置视图帮助程序。

通常,当帮助程序需要视图脚本时,此脚本会放置在局部视图中。该部分的位置可能因目录结构而异,但标准为:

application[/modules/name]/views/scripts/partials/
您可以使用以下内容编写帮助器:

class Cas_View_Helper_Foo extends Zend_View_Helper_Abstract 
{
    protected $partial = 'partials/foo.phtml';
    protected $view = null;

    // Render the partial here
    public function foo($params)
    {
        $this->view->partial($this->partial, $params);
    }

    // Specifying this method Zend_View will inject the view here
    public function setView(Zend_View_Interface $view)
    {
        $this->view = $view;
    }

}

关于如何做到这一点,没有一个标准、建议或任何一成不变的东西。ZF虽然灵活,但无论什么对您的应用程序来说都是最好的,这完全取决于您。我将使用这个答案来比较当前的解决方案

凯恩的答案是我觉得大多数人最终会找到的解决办法。就我个人而言,我有自己的想法:
application[/modules/name]/views/scripts/helpers/{your helper}/blah.phtml
,它允许您没有冲突的部分名称,并且能够轻松导航到视图helpers文件

尽管在模块化方面这仍然很糟糕,但视图辅助程序必须至少安装在两个位置。另一种非常流行的解决方案是:

application[/modules/name]/views/helpers/{your helper}.php
application[/modules/name]/views/helpers/{your helper}/{view scripts}.phtml

这为视图助手提供了更好的模块化。

是的,我已经做到了。但是助手本身需要一个视图脚本是的,我知道我可以把它们放在某个地方,但是我想知道是否有一个“标准”的地方来放置它们。