Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend Framework-在注册表中找不到按名称排列的插件_Php_Zend Framework_View_View Helpers - Fatal编程技术网

Php Zend Framework-在注册表中找不到按名称排列的插件

Php Zend Framework-在注册表中找不到按名称排列的插件,php,zend-framework,view,view-helpers,Php,Zend Framework,View,View Helpers,在我的视图/helpers/文件中调用函数时,从视图/scripts/中的我的脚本中,我得到以下错误: 消息:在注册表中找不到名为“SetBlnCompany”的插件; 使用的路径:我的视图辅助对象: /www/zendserver/htdocs/development/application/views/helpers/ Zend\u视图\u帮助程序\u: Zend/View/Helper/:/www/zendserver/htdocs/development/application/view

在我的视图/helpers/文件中调用函数时,从视图/scripts/中的我的脚本中,我得到以下错误:

消息:在注册表中找不到名为“SetBlnCompany”的插件; 使用的路径:我的视图辅助对象: /www/zendserver/htdocs/development/application/views/helpers/ Zend\u视图\u帮助程序\u: Zend/View/Helper/:/www/zendserver/htdocs/development/application/views/helpers/

bootstrap.php

protected function _initConfig()
{       
    Zend_Registry::set('config', new Zend_Config($this->getOptions()));
    date_default_timezone_set('America/Chicago');
}

protected function _initAutoload() {     
    $autoloader = new Zend_Application_Module_Autoloader(array(             
        'namespace' => 'My',             
        'basePath'  => dirname(__FILE__),     
    ));
    return $autoloader;
} 
class Zend_View_Helper_Dropdownhelper extends Zend_View_Helper_Abstract
{
     public $blnCompany = false;

     public function getBlnCompany() {
         return $this->blnCompany;
     }

     public function setBlnCompany($blnCompany) {
         $this->blnCompany = $blnCompany;
     }
}
application.ini

resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/views/helpers" 
application/views/helpers/dropdownheloper.php

protected function _initConfig()
{       
    Zend_Registry::set('config', new Zend_Config($this->getOptions()));
    date_default_timezone_set('America/Chicago');
}

protected function _initAutoload() {     
    $autoloader = new Zend_Application_Module_Autoloader(array(             
        'namespace' => 'My',             
        'basePath'  => dirname(__FILE__),     
    ));
    return $autoloader;
} 
class Zend_View_Helper_Dropdownhelper extends Zend_View_Helper_Abstract
{
     public $blnCompany = false;

     public function getBlnCompany() {
         return $this->blnCompany;
     }

     public function setBlnCompany($blnCompany) {
         $this->blnCompany = $blnCompany;
     }
}
导致错误的脚本

<?php 
     $this->setBlnCompany(true);
     //...etc...
?>


编辑以向我的帖子添加更多背景信息


理想情况下,我会使用这个“dropdown helper”类,它有一个“get html”函数和一个“get javascript”函数,还有许多setter函数,用于在调用getHtml和getJavascript之前设置选项。

您的助手必须与您的方法同名。将
Zend\u View\u Helper\u dropdownheloper
更改为
Zend\u View\u Helper\u GetBlnCompany
,它将起作用。不要忘了更改文件名:GetBlnCompany.php

protected function _initConfig()
{       
    Zend_Registry::set('config', new Zend_Config($this->getOptions()));
    date_default_timezone_set('America/Chicago');
}

protected function _initAutoload() {     
    $autoloader = new Zend_Application_Module_Autoloader(array(             
        'namespace' => 'My',             
        'basePath'  => dirname(__FILE__),     
    ));
    return $autoloader;
} 
class Zend_View_Helper_Dropdownhelper extends Zend_View_Helper_Abstract
{
     public $blnCompany = false;

     public function getBlnCompany() {
         return $this->blnCompany;
     }

     public function setBlnCompany($blnCompany) {
         $this->blnCompany = $blnCompany;
     }
}
为了使用代理方法,只需
返回$this

// /application/views/helpers/helpers/GetBlnCompany.php
class Zend_View_Helper_GetBlnCompany extends Zend_View_Helper_Abstract
{    
    public function getBlnCompany() 
    {
        return $this;
    }

    public function fooBar($blnCompany)
    {
        return ucfirst($blnCompany);
    }
}
然后,您需要按如下方式调用视图帮助器:

$this->getBlnCompany()->fooBar('google');
//return "Google"

那么一个助手只能有一个公共可用的函数?谢谢。理想情况下,我会使用这个“dropdown helper”类,拥有一个用于“get html”的函数,一个用于“get javascript”的函数,以及许多用于在调用getHtml和getJavascript之前设置选项的setter函数。+1表示文件名建议。在mac(不区分大小写的文件系统)上开发的代码部署到linux时出现此错误。仅供参考,您创建的任何不属于ZF的类都不应以
Zend
开头。这会让人认为您的视图帮助器确实内置在ZF中,并为自动加载程序添加了额外的查找<代码>注意:重要提示:必须与Zend Framework库一起部署但不属于标准库或附加库的代码(例如,应用程序代码或非Zend分发的库)不得以“Zend_”或“ZendX_”开头。
请参阅