Yii2 视图代码风格

以下代码风格用于 Yii 2.x 核心和官方扩展中的视图文件。我们不强制你在自己的应用中使用此风格。自由决断,选你喜欢的。

  1. <?php
  2. // 每个模板文件必须有 PHP 开始标签。开始标签后需要空一行。
  3. // 这里描述通过控制器传过来的变量
  4. /**
  5. * @var yii\base\View $this
  6. * @var yii\widgets\ActiveForm $form
  7. * @var app\models\Post[] $posts
  8. * @var app\models\ContactMessage $contactMessage
  9. */
  10. // 描述完也要空一行
  11. // 命名空间的类声明
  12. use yii\helpers\Html;
  13. use yii\widgets\ActiveForm;
  14. // 下面也要空一行
  15. // 设置上下文属性,调用 setter, 和做其它事。
  16. $this->title = 'Posts';
  17. ?>
  18. <!-- foreach,for,if等最好用单独的代码段 -->
  19. <?php foreach ($posts as $post): ?>
  20. <!-- 注意缩进 -->
  21. <h2><?= Html::encode($post['title']) ?></h2>
  22. <p><?= Html::encode($post['shortDescription']) ?></p>
  23. <!-- 如果使用了多个代码段, 应该用 `endforeach;`, `endfor;`, `endif;` 等代替 `}` -->
  24. <?php endforeach; ?>
  25. <!-- 小物件的调用可能在多个逻辑控制语句中 -->
  26. <?php $form = ActiveForm::begin([
  27. 'options' => ['id' => 'contact-message-form'],
  28. 'fieldConfig' => ['inputOptions' => ['class' => 'common-input']],
  29. ]); ?>
  30. <!-- 注意缩进 -->
  31. <?= $form->field($contactMessage, 'name')->textInput() ?>
  32. <?= $form->field($contactMessage, 'email')->textInput() ?>
  33. <?= $form->field($contactMessage, 'subject')->textInput() ?>
  34. <?= $form->field($contactMessage, 'body')->textArea(['rows' => 6]) ?>
  35. <div class="form-actions">
  36. <?= Html::submitButton('Submit', ['class' => 'common-button']) ?>
  37. </div>
  38. <!-- 结束小物件调用应该用单独一组 PHP 标签 -->
  39. <?php ActiveForm::end(); ?>
  40. <!-- 结尾必须多出一个换行符 -->