[Zend Framework] Zend_View: 独自のビューヘルパーを作成する

ビューヘルパーをいろいろ見てきましたが、独自のビューヘルパーが作れるようなので、方法を調べて試してみました。

パスを確認する

デフォルトでは、Zend_View は "Zend/View/Helper/*" からヘルパークラスを探します。」とマニュアルにあります。

zf で作られたディレクトリ application/views/helpers に置いたところ、うまく探してくれました。

  • application/views/helpers

ちなみに「推奨されるプロジェクト・ディレクトリ構造」では、いくつかhelpersディレクトリがあります。
どう使い分けるんだろうか。

作成のためのルールとサンプル

命名などにルールがあるため、これに則ってヘルパーを用意する必要があります。

サンプルを参考にこのようなファイルを用意して配置します。

application/views/helpers/SpecialPurpose.php
<?php
class Zend_View_Helper_SpecialPurpose extends Zend_View_Helper_Abstract
{
    protected $_count = 0;
    public function specialPurpose()
    {
        $this->_count++;
        $output = "'The Jerk' を {$this->_count} 回見ました。";
        return $this->view->escape($output) . '<br />';
    }
}

viewファイルに下記のような書き方で使用します。

application/views/scripts/news/index.phtml
<?= $this->specialPurpose(); ?>
<?= $this->specialPurpose(); ?>
<?= $this->specialPurpose(); ?>

view_helper 2013-06-27 13-54-00

ビューヘルパーを作ってみる

ビューヘルパーからビューヘルパーを呼ぶこともできるよう。
何か作ってみようかと思ったが、ネタが思い浮かばず。
下記から、Strcut ヘルパーを試してオーとなった。
ビューを助けるの意味が分かったような気がします。

参考サイト