SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Zend Framework入門

Zend Framework入門(9):
Zend Frameworkにおけるビューの処理 - Zend_View(前編) -

Zend Frameworkによる実践的なPHPアプリケーション開発 9


ビューヘルパの解説 1

標準で利用できるビューヘルパ

 よく使われる要素のビューヘルパはZend Frameworkで標準的に準備されています。では、まずフォームに関するビューヘルパについて説明します。サンプルでは、中央にあるフォームがこれらのヘルパを利用しています。

フォームをビューヘルパで出力(c:/codezine/zendapps/views/scripts/partial/input.phtml)
<?php
echo $this->form('inputForm',
                 array('action' => '/Index/index',
                       'method' => 'post'),
                 false);

echo $this->formText('dateTime', '', array('size' => '30'));
...
echo $this->formText('newmemo', '', array('size' => '60'));
...
echo $this->formSubmit('', $this->translate('submit'));

echo '</form>';

 まず、先頭の$this->formはFORMタグを出力するものです。ここで2つ目の引数にFORMタグの属性を配列で与えています。その後のformTextはテキスト入力を、formSubmitはサブミットボタンを出力するためのビューヘルパです。formTextの2つ目の引数で配列を渡していますが、ここではテキスト入力の幅を指定しています。

 この他にもHTMLのフォームを出力するためのビューヘルパにはさまざまなものがあります。一覧を次に示します。

フォーム関係のビューヘルパ
ヘルパ名 引数 説明
form $name、 $attribs、 $content FORMタグを作成。$contentを省略したり、falseを指定すると開始タグだけを作成する。$contentsの中身があった場合は$contentsを囲むようなFORMタグを作成する。
formText $name、 $value、 $attribs テキスト入力を作成。
formPassword $name、 $value、 $attribs パスワード入力を作成。
formHidden $name、 $value、 $attribs 隠し要素を作成。
formSubmit $name、 $value、 $attribs 送信ボタンを作成。
formReset $name、 $value、 $attribs フォームのリセットボタンを作成。
formTextarea $name、 $value、 $attribs テキストエリアを作成
formButton $name、 $value、 $attribs フォームのボタンを作成。
formCheckbox $name、 $value、 $attribs、 $options チェックボックスを作成。$optionsは配列で、1つ目の要素がチェックボックスがチェックされているときの値、2つ目の要素がチェックボックスがチェックされていないときの値になる。標準ではそれぞれ'1'と'0'。
formFile $name、 $value、 $attribs ファイル選択を作成。
formLabel $name、 $value、 $attribs ラベル要素を作成。
formMultiCheckbox $name、 $value、 $attribs、 $options、 $listsep 複数のチェックボックスを作成。$optionsは連想配列で、$valueは選択されている値。$listsepは各チェックボックスを区切る要素で、標準では"<br />"。
formRadio $name、 $value、 $attribs、 $options ラジオボタンを作成。$optionsは連想配列で、各要素の鍵がラジオボタンのvalue属性、要素の値がラジオボタンのlabel属性となる。
formSelect $name、 $value、 $attribs、 $options オプション要素を作成。$optionsは連想配列で、各要素の鍵がラジオボタンのvalue属性、要素の値がラジオボタンのlabel属性となる。$valueのオプションが最初に選択されている状態となる。
formヘルパを使う上での注意点
 先ほどの例ではformヘルパを使って開きタグを作成しましたが、出力される内容は<form id="inputForm" action="/Index/index" method="post">ですので、(記述量を減らすという意味では)無理にヘルパを使う必要はないかもしれません。
あと一点気をつけないといけないのが、このformヘルパ使ってFORMタグを作成する際にはname属性を指定することができないようです。試しに属性を指定する配列に'name' => 'inputForm'を加えてみてください、無視されると思います(実は、内部で$nameに上書きされた上に無視されてしまいます)。

 また、これ以外にも次のようなビューヘルパがあります。

その他の主なビューヘルパの一覧
ヘルパ名 引数 説明
url $urlOptions、 $name、 $reset $nameで与えられたルートのassembleメソッドを利用してURLを作成する。$urlOptionsURLはそのassembleメソッドに渡される引数。
htmlList $items、 $ordered、 $attribs、 $escape HTMLのリスト要素(ulやol)を作成。$itemsが多次元配列だった場合、入れ子のリストを作成する。また、$escapeがtrueだった場合、各要素にエスケープ処理を行う。$orderedがtrueだった場合順序つきのリスト(ol)、falseだった場合は順序なしのリスト(ul)を作成する。

 urlヘルパは、サンプルの最後尾にあるリンクを生成するのに使われています。urlヘルパの$urlOptionsでは、どのようなものを与えれば良いのか分かりづらいかと思いますが、実は使っているルータによって変化します。例えば、標準のルータを利用する場合には次のようになります。

urlヘルパを利用した例(index/index.phtmlより)
$this->url(array('controller'=>'Smarty',
                 'action'=>'noView'));

 このコードは、標準のルータでアクションコントローラをSmartyに、アクションをnoViewに指定した場合のURLを作成します。この場合には/Smarty/noViewを作成します。

次のページ
ビューヘルパの解説 2

この記事は参考になりましたか?

Zend Framework入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 風田 伸之(カゼタ ノブユキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2842 2008/09/01 16:30

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー