フォーム生成class Form

Formクラスはフォームの構築と値復元機能の容易な実装のためのヘルパーです。

<?php
// 生年月日の選択肢を生成
$years = range(2010, 2015);
$year_selections = array_combine($years, $years); 

if (! empty($_POST) and some_validation($_POST) === false) {
    // POSTパラメータが送信されて検証に失敗した時
    // フォームに値を復元する
    Form::setValue($_POST);
}
?>

<?php Form::open('method="post"') ?>

<dl class="dl-horizontal">
    <dt><label for="input-firstname">First name</label></dt>
    <dd><?php Form::text('firstname #input-firstname.form-input') ?></dd>

    <dt><label for="input-lastname">Last name</label></dt>
    <dd><?php Form::text('lastname #input-lastname.form-input') ?></dd>

    <dt>Birthday</dt>
    <dd><?php Form::select('birth-year', $year_selections) ?></dd>
</dl>

<?php Form::close() ?>

出力結果

<form method="post">

<dl class="dl-horizontal">
    <dt><label for="input-firstname">First name</label></dt>
    <dd><input type="text" name="firstname" id="input-firstname" class="form-input" /></dd>

    <dt><label for="input-lastname">Last name</label></dt>
    <dd><input type="text" name="lastname" id="input-lastname" class="form-input" /></dd>

    <dt>Birthday</dt>
    <dd>
        <select name="birth-year">
            <option value="2010">2010</option>
            <option value="2011">2011</option>
            <option value="2012">2012</option>
            <option value="2013">2013</option>
            <option value="2014">2014</option>
            <option value="2015">2015</option>
        </select>
    </dd>
</dl>

</form>

サンプルコードでは記述されていませんが、some_validationでの検証処理をパス出来なかった場合
フォームへの値復元を行います。

値復元はForm::setValue($_POST)の一文で終了し、input、textarea、selectやradio、checkboxへの選択状態や入力値の復元とエスケープ処理が自動的に行われます。