php - zend 框架找不到帮助程序 View 文件。出现 'Plugin by name was not found' 错误

标签 php zend-framework zend-view

我试图简单地使用位于 /library/my/view/helpers/friends.php

中的自定义 View 助手

我在application.ini中有这个:

resources.view.helperPath.My_View_Helper = "/my/view/helpers"

这是辅助类:

class My_View_Helper_Friends extends Zend_View_Helper_Abstract {
    public function friends() {
        $str = "hello world";
        return $str;
    }
}

这是在 View 文件中:

<?php echo $this->friends(); ?>

我在这一行收到一个错误,说它无法在已有的路径中找到该插件。

错误:

Plugin by name 'Friends' was not found in the registry; used paths: My_View_Helper_: /My/View/Helpers/ Zend_View_Helper_: Zend/View/Helper/;C:/http/xampplite/htdocs/zf-tutorial/application/views\helpers/

看起来它使用了正确的路径并且文件就在那里。我不明白为什么找不到它?

最佳答案

我认为问题在于使用了不正确的路径。

...used paths: My_View_Helper_: /My/View/Helpers/

注意路径是/My/View/Helpers。它使用的是绝对路径。另一个问题是该文件夹应命名为 Helper 而不是 helpers

然后将 application.ini 中的配置行更改为:

resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/../library/my/view/helper"

并确保您的类名为 My_View_Helper_Friends 并且文件名为 Friends.php。案例很重要。该目录实际上应该被称为 My/View/Helper 并且大写。

编辑:假设library位于您的include_path中,您还可以使用以下行:

resources.view.helperPath.My_View_Helper = "My/View/Helper"

请注意它没有前导 /。这将在 include_path 中的所有位置搜索文件夹 My/View/Helper

关于php - zend 框架找不到帮助程序 View 文件。出现 'Plugin by name was not found' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9953767/

相关文章:

php - 带有 mysql join 的多个 foreach 循环

php - 将复杂查询转换为 zend_db 选择对象格式

php - PHP + JS的模板引擎但是

zend-framework - Zend 框架 : Render multiple Views in one Layout

php - 魔术方法 __call() 参数作为 "real"参数

php - git update-index --assume-unchanged 文件的 git pull 错误

php - SQL 查询,我需要得到一些值

javascript - 如何在 zend 框架上使用 Tinymce?

php - Zend Framework 1.12 - 无法加载模块的模型

php - 在 ZF2 中直接将 PhpRenderer 与 subview 一起使用