0

古いアプリケーションを新しい Zend Framework 2.0 に移行しています。私のアプリはそれを単なるライブラリとして使用しており (Zend\Application の使用や MVC 部分は一切使用していません)、フォーム ヘルパーの使用に問題があります。それで、私は2つの質問をして終了しました:

  1. PhpRenderer にヘルパー パスを追加するにはどうすればよいですか?
  2. コードを検索すると、デフォルトのヘルパー パスを持つ ViewHelperManagerFactory というクラスが見つかりました。すべてのパスが設定されたこのファクトリによって作成された新しいもので HelperManager を変更するにはどうすればよいですか? (ServiceManagerがないことに注意してください)。
4

1 に答える 1

3

HelperPluginManager から setFactory() を呼び出してヘルパーを追加できます。

$renderer = new \Zend\View\Renderer\PhpRenderer();
$renderer->getHelperPluginManager()->setFactory('specialPurpose', function () {
    return new SpecialPurpose();
  });

echo $renderer->specialPurpose();
echo $renderer->specialPurpose();
echo $renderer->specialPurpose();

class SpecialPurpose extends \Zend\View\Helper\AbstractHelper {

  protected $count = 0;

  public function __invoke() {
    $this->count++;
    $output = sprintf("Called %d time(s).", $this->count);
    return htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
  }

}
于 2012-10-06T03:01:08.250 に答える