2012-03-02 7 views
7

ビュー/スクリプト/内部の私のスクリプトからの私ビュー/ヘルパー関数/ファイルを呼び出す、私はこのエラーを取得し、レジストリに見つかりませんでした。Zend Frameworkの - 名前のプラグインが

Message: Plugin by name 'SetBlnCompany' was not found in the registry; used paths: My_View_Helper_: /www/zendserver/htdocs/development/application/views/helpers/ Zend_View_Helper_: 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; 
} 

のapplication.ini

resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/views/helpers" 

アプリケーション/ビュー/ヘルパー/ DropdownHelper.php

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... 
?> 

EDI Tは自分の投稿に背景情報を追加します。

理想的には、私はこのgetHtmlとgetJavascriptが呼び出される前にオプションを設定するための関数 "get javascript"と "set javascript"の関数を "get html"に持たせるためにこの "dropdown helper"

+0

あなたがZFに含まれていないクラスは、Zend_で始めるべきではありません。これは、あなたのビューヘルパーが実際にZFに組み込まれていると思うようになり、オートローダーの追加の検索が追加されます。 '注意:重要:Zend Frameworkライブラリと一緒にデプロイする必要があるが、標準ライブラリやエクストラライブラリ(例えば、Zendによって配布されていないアプリケーションコードやライブラリ)には含まれていないコードは、" Zend_ "や" ZendX _ "で始めることはできません。 [Zend Framework - 命名規則](http://framework.zend.com/manual/en/coding-standard.naming-conventions.html) – drew010

答えて

8

あなたのヘルパーはあなたの方法と同じ名前でなければなりません。 Zend_View_Helper_DropdownhelperZend_View_Helper_GetBlnCompanyに変更すると動作します。あまりにもあなたのファイル名を変更することを忘れないでください:GetBlnCompany.php

をプロキシ方式を使用するためには、単にreturn $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" 
+0

を参照してください。そのため、ヘルパーは公開機能を1つしか使用できません。 – adam

+0

いいえ、プロキシ機能を使用することもできます。私の回答を編集できます。ありがとう。 – Liyali

+0

理想的には、私はこのgetHtmlとgetJavascriptが呼び出される前にオプションを設定する多くのセッター関数 "get javascript"と "get html"の関数を持つために、この "ドロップダウンヘルパー"クラスを使用します。 – adam