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

CakePHP ViewHelperの使い方

  • 2006-08-29 (火) 23:25
  • CakePHP | PHP
  • このエントリーをはてなブックマークに追加
この記事の所要時間: 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:
  1. <?php
  2. class SampleController extends Controller {
  3.   // HtmlHelper,TimeHelper
  4.   var $helpers = array('html', 'time');
  5. }
  6. ?>

ViewHelperを使用する

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

[app/view/sample/index.thtml]

PHP:
  1. <!-- 日付判定:更新時間が1週間以内ならNew!!を表示 -->
  2. <?php if (!$time->wasWithinLast("1 weeks", $sample['modified'])) { ?>
  3. <strong>New!!</strong>
  4. <?php } ?>
  5.  
  6. <!-- フォームタグ -->
  7. <?php echo $html->formTag() ?>
  8. <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:
  1. <?php
  2. class HelloHelper extends Helper {
  3.   function hello($name) {
  4.     return $this->output(sprintf("Hello, %s", $name));
  5.   }
  6. }
  7. ?>

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

>>

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

トラックバック:0

このエントリーのトラックバック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

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

検索
フィード
メタ情報

Return to page top