Home > CakePHP | PHP > CakePHP ViewHelperの使い方

CakePHP ViewHelperの使い方

この記事の所要時間: 256

ViewHelperはHTML表示や数値表現、日付判定などviewで役立つコンポーネントです。controllerで使用するHelperを指定しておくとフレームワークにてインスタンス化され、view内で使用できるようになります。ViewHelperには以下のようなものがあります。

    [cake/libs/view/helpers]

  • AjaxHelper [ajax.php]
  • CacheHelper [cache.php]
  • FormHelper [form.php]
  • HtmlHelper [html.php]
  • JavascriptHelper [javascript.php]
  • NumberHelper [number.php]
  • SessionHelper [session.php]
  • NumberHelper [number.php]
  • TextHelper [text.php]
  • TimeHelper [time.php]

デフォルトではHtmlHelperが有効になっています。

ViewHelperを指定する

controllerの$helpersに使用するHelper名を配列で渡します。Helper名はクラス名をそのまま指定するのではなく、HogeHelperのHogeの部分を小文字にして指定します。(HogeHelperならhoge)ちなみにこの指定方法はHelper以外でもCompenent、Modelなどでも使うで覚えておくとおいしいケーキが焼けます。:)

[app/controller/sample_controller.php]

< ?php
class SampleController extends Controller {
  // HtmlHelper,TimeHelper 
  var $helpers = array('html', 'time');
}
?>

ViewHelperを使用する

viewでは$hogeでHogeHelperインスタンスが使用できます。(HtmlHelperなら$html、TimeHelperなら$time)

[app/view/sample/index.thtml]

<!-- 日付判定:更新時間が1週間以内ならNew!!を表示 -->
<?php if (!$time->wasWithinLast("1 weeks", $sample['modified'])) { ?>
<strong>New!!</strong>
<?php } ?>

<!-- フォームタグ -->
<?php echo $html->formTag() ?>
<p>< ?php echo $html->submit('投 稿') ?></p>

>>

ViewHelperは自作する事もできます。

ViewHelperを作成する

自作ViewHelperは以下を満たすように作成します。

  • クラス名を[%Helper名% + Helper]にする
  • Helperクラスを継承する
  • ファイル名を[%helper名% + .php]にし、[app/views/helpers]に配置する。
    %helper名%はクラス名の%Helper名%を小文字に変換し、単語の区切りを[_]でつなげます。(FooBarHelperならfoo_bar)

[app/views/helpers/hello.php]

<?php
class HelloHelper extends Helper {
  function hello($name) {
    return $this->output(sprintf("Hello, %s", $name));
  }
}
?>

あとはcontrollerの$helpersに’hello’を加えれば、viewで$hello->hello()が使用できます。

>>

■参考サイト
http://manual.cakephp.org/chapter/helpers

Pocket

follow us in feedly

トラックバック:1

このエントリーのトラックバックURL
http://www.1x1.jp/blog/2006/08/cakephp_viewhelper.html/trackback
Listed below are links to weblogs that reference
CakePHP ViewHelperの使い方 from Shin x blog
pingback from お気に入り 役立つ | Web平犯科帳 12-10-19 (金) 18:06

[…] http://www.1×1.jp/blog/2006/08/cakephp_viewhelper.html […]

Home > CakePHP | PHP > CakePHP ViewHelperの使い方

検索
フィード
メタ情報

Return to page top