どのように追加するビューのヘルパーのディレクトリ(zend framework)

StackOverflow https://stackoverflow.com/questions/2335545

質問

おはようで始まるZF(1.9.7)を使いたいビューの助けをから図書館が共有すべての私。が見つからない方の追加でディレクトリのヘルパーパスです。私herpers作品の制裁金を入れるとしての応用のヘルパーパスです。

このエラーはどのようにパスZFヘルパー、パスへの応用。

object(ArrayObject)#71 (3) {
  ["exception"]=>
  object(Zend_Loader_PluginLoader_Exception)#70 (6) {
    ["message:protected"]=>
    string(151) "Plugin by name 'Voo' was not found in the registry; used paths:
Zend_View_Helper_: Zend/View/Helper/;C:/ZendStd/www/applis/VOO4_PROJECTX/views\helpers/"
    ["string:private"]=>
    string(0) ""
    ["code:protected"]=>
    int(0)
    ["file:protected"]=>
    string(89) "C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Loader\PluginLoader.php"
    ["line:protected"]=>
    int(401)

ベストについて
Cédric

役に立ちましたか?

解決

これは、ビューのZend_Applicationリソースを内蔵した非常に簡単に行うことができます。あなたはINIのconfigsを使用している場合、このような行を追加します:

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

キーの最後には、クラス名の接頭辞、および値それらが存在パスです。

他のヒント

ヘルパーパスを追加を通じて Zend_View_Abstract::addHelperPath().ではこのメソッドを直接呼び出しは、既存のビューインスタンス.

ヘルパーパスで指定することもできさまざまに中のブートストラップ.チェックのZFマニュアルのchapter on Zend_Application への利用方法をご覧くださいブートストラップクラスおよびリソー:

を使用した場合、

問題があります

resources.view.helperPath.App_View_Helper = APPLICATION_PATH "/../library/App/views/helpers"

私は、モジュール内のレイアウトでも、地元のヘルパーを一切ビューヘルパーにアクセスすることはできません。 (プラグインは名前で「LoggedInAs」は、レジストリに見つかりませんでした)が、それでもビュー・テンプレート・ファイルで作業します。

私はこのコードを入れてレイアウトファイルの末尾に「エコーZend_Debug ::ダンプ($この)」と出力の一部があります。

        ["_prefixToPaths:protected"] => array(3) {
          ["Zend_View_Helper_"] => array(2) {
            [0] => string(17) "Zend/View/Helper/"
            [1] => string(16) "./views\helpers/"
          }
          ["ZendX_JQuery_View_Helper_"] => array(1) {
            [0] => string(25) "ZendX/JQuery/View/Helper/"
          }
          ["Zend_View_Helper_Navigation_"] => array(1) {
            [0] => string(28) "Zend/View/Helper/Navigation/"
          }
        }

しかしときは問題ないブートストラップファイルでこれらのコードを使用します。

    //Initialize and/or retrieve a ViewRenderer object on demand via the helper broker
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->initView();
    //add the global helper directory path
    $viewRenderer->view->addHelperPath(APPLICATION_PATH.'/../library/App/views/helpers', 'App_View_Helper');

出力は以下のようでした

            ["_prefixToPaths:protected"] => array(4) {
              ["Zend_View_Helper_"] => array(3) {
                [0] => string(17) "Zend/View/Helper/"
                [1] => string(16) "./views\helpers/"
                [2] => string(86) "D:/zf/application/modules/default/views\helpers/"
              }
              ["App_View_Helper_"] => array(1) {
                [0] => string(85) "D:\zf\application/../library/App/views/helpers/"
              }
              ["ZendX_JQuery_View_Helper_"] => array(1) {
                [0] => string(25) "ZendX/JQuery/View/Helper/"
              }
              ["Zend_View_Helper_Navigation_"] => array(1) {
                [0] => string(28) "Zend/View/Helper/Navigation/"
              }
            }

EDIT:AのZend Frameworkのの中でビューヘルパーをチェックより詳細なロブ・アレンのLoggedinasビューヘルパーを使用して、この問題に関するテイクます。

あなたにデビッドCauntによって指定くださいすることができますが、また、あなたのブートストラップでは、このようにそれを行うことができるだけでなく。 Zend Frameworkの中で何かをするために複数の方法が常にある注

http://devzone.zend.com/article/3412する

あなたはビューオブジェクトへのアクセス権を持っている場合は、以下の操作を行います。

<?php    
$view->addHelperPath('My/View/Helper/', 'My_View_Helper'); 
?>

あなたがあればフロントコントローラプラグイン

でビューオブジェクトを取得する必要があるかもしれません

また、ここで始まる記事のこれは本当に偉大なセットをチェック

HTTP ://zend-framework-community.634137.n4.nabble.com/Getting-view-from-Bootstrap-ZF1-8-tp659447p659460.htmlする

私は、アプリケーション全体にアクセスすることができ、共通のディレクトリから、Zendのビューヘルパーを登録するための短い、簡単なチュートリアルを書かれています。見てください。

http://www.mixedwaves.com/2010/03/accessing-and-using-zend-view-helpers-from-a-common-directory/する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top