Yii2 ビューのコードスタイル

下記のコードスタイルが Yii 2.x コアと公式エクステンションのビューファイルに用いられています。 私たちは、あなたが自分のアプリケーションにこのコードスタイルを使うことを強制するものではありません。 あなたにとってより良いコードスタイルを自由に選んでください。

<?php
// 冒頭の PHP タグは全てのテンプレートファイルで不可欠。冒頭のタグに続く空行も同じく必須。

// コントローラから渡される入力変数をここで説明。
/* @var $this yii\base\View */
/* @var $form yii\widgets\ActiveForm */
/* @var $posts app\models\Post[] */
/* @var $contactMessage app\models\ContactMessage */
// 下の空行は必要。

// 名前空間に属するクラスの宣言。
use yii\helpers\Html;
use yii\widgets\ActiveForm;
// 下の空行は必要。

// コンテキストのプロパティを設定したり、コンテキストのセッターを呼んだり、その他のことをする。
$this->title = 'Posts';
?>
<!-- foreach、for, if などには、独立した PHP ブロックを使う方が良い -->
<?php foreach ($posts as $post): ?>
    <!-- インデントのレベルに注目 -->
    <h2><?= Html::encode($post['title']) ?></h2>
    <p><?= Html::encode($post['shortDescription']) ?></p>
<!-- 複数の PHP ブロックが使われる場合にそなえて、`}` ではなく、`endforeach;`、`endfor;`、`endif;` などを使う -->
<?php endforeach; ?>

<!-- ウィジェットの宣言は複数のコード行に分かれても良いし、分かれなくても良い -->
<?php $form = ActiveForm::begin([
    'options' => ['id' => 'contact-message-form'],
    'fieldConfig' => ['inputOptions' => ['class' => 'common-input']],
]); ?>
    <!-- インデントのレベルに注目 -->
    <?= $form->field($contactMessage, 'name')->textInput() ?>
    <?= $form->field($contactMessage, 'email')->textInput() ?>
    <?= $form->field($contactMessage, 'subject')->textInput() ?>
    <?= $form->field($contactMessage, 'body')->textArea(['rows' => 6]) ?>

    <div class="form-actions">
        <?= Html::submitButton('Submit', ['class' => 'common-button']) ?>
    </div>
<!-- ウィジェットの終了の呼び出しは、独立した PHP タグを持つべき -->
<?php ActiveForm::end(); ?>
<!-- 末尾の改行文字は必須 -->