注: これは古い質問であり、ここでの回答は機能しなくなりました (ベータ 5 以降)。ZF2安定版でそれを行う方法については、この質問を参照してください。
マニュアルからこの例を見てきました。これは Zend Framework のバージョン 2 であることに注意してください。
私はこのヘルパーを作成します:
<?php
namespace Mats\Helper;
use Zend\View\Helper\AbstractHelper;
class SpecialPurpose extends AbstractHelper
{
protected $count = 0;
public function __invoke()
{
$this->count++;
$output = sprintf("I have seen 'The Jerk' %d time(s).", $this->count);
return htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
}
}
?>
そして、次のように登録してみてください:
return array(
'di' => array('instance' => array(
'Zend\View\HelperLoader' => array('parameters' => array(
'map' => array(
'specialpurpose' => 'Mats\Helper\SpecialPurpose',
),
)),
)),
);
ただし、ビューでこれを行う場合、たとえば add.phtml
<?php echo $this->specialPurpose(); ?>
ヘルパーが見つからないと言ってクラッシュします。
ただし、同じ add.phtml ファイルで実行できます
<?php $helper = new Mats\Helper\SpecialPurpose(); ?>
それにアクセスできるので、名前空間は正しいはずですか?
現在は Module.php に登録していますが、他の場所でも試しました。
私の目標は、モジュール内のすべてのビューでビュー ヘルパーにアクセスできるようにすることです。各 phtml ファイルでビュー ヘルパーのインスタンスを作成したり、コントローラーに毎回追加したりする必要はありません。
これはどのように達成できますか?ありがとう。