1

Zend Framework 1.12 から 2.0 に移行しています。これまで、個々のカスタム ビュー ヘルパーを登録する方法を学びました。(複数の) ビュー ヘルパーのパスを登録することもできますか?

ZF1 では、application.ini に以下を記述してこれを実現しました。

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

その結果、次のようになります。

$this->myHelper1(および ...2、...3 など)

自動的にロードされます:

MyApp/module/Application/src/Application/View/Helper/MyHelper1.php

ZF2で同様のことを達成するにはどうすればよいですか?

4

1 に答える 1

2

次のように、すべてのカスタム ヘルパーを構成に登録する必要があります。

'view_helpers' => array(
    'invokables' => array(
        'myHelper1' => 'Application\View\Helper\MyHelper1',
        'myHelper2' => 'Application\View\Helper\MyHelper2',
    ),  
),

すべてのヘルパー呼び出しは Zend\View\Renderer\PhpRenderer マジック メソッド __call() から来るため、独自の PhpRenderer を拡張して plugin() または __call() メソッドを上書きすることでパスを登録することは可能だと思います。

ただし、ヘルパーをパスで登録することはお勧めしません。ZF2 はサービス ベースのフレームワークです。ヘルパー/プラグイン/コントローラーを含むすべては、構成で定義する必要がある事前に確立されたサービスである必要があります。パフォーマンスと安全性に優れています。

于 2012-12-14T04:14:04.943 に答える