Php Zend Framework-在注册表中找不到按名称排列的插件
在我的视图/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.phpPhp 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
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_”开头。
请参阅