PoEAA ch14 Template View
Template View
Renders information into HTML by embedding markers in an HTML page.
- 文字列操作でビュー(HTML)を作るのはつらい
- HTMLベースで、動的な情報を入れる場所を「マーカー」として埋め込む
How It Works
- 自分で作る代物ではないので、使い方の「有るべき論」について
Embedding the Markers
- カスタムタグ vs それ以外
- Server Page
- Template Viewにロジックを書くとここが良くない
Helper Object
- ロジックを閉じ込めて、呼び出すだけにする
- 効能
- これ自体は単純で賞賛すべき原則だが、もっと込み入った問題もある
Conditional Display
- 条件分岐して出し分けるやつとか
- 汎用の
<IF>
みたいなタグを使うのはくさい- 【補】Laravelでいうと
@if - @endif
- 避けられないこともあるが、できるだけ避ける
- 【補】Laravelでいうと
- 回避方法1: helperに条件分岐ロジックを移す
- 回避方法2: 単なる
<IF>
ではないカスタムタグを用意する
これは良くない:
<IF expression = "isHighSelling()"><b></IF> <property name = "price" /> <IF expression = "isHighSelling()"></b></IF>
こうする
<highlight condition = "isHighSelling" style = "bold"> <property name = "price" /> </highlight>
Iteration
- Conditional Displayと似た問題をはらむ
When to Process
- Template Viewというパターン名からしてMVCのVを意識している
- Template Viewの責務がVの範疇を超える場合はhelperに処理を切り出すこと
- 例外はhelperで捕まえること
- さもないと描画途中のページが出力されてしまったりする
Using Scripts
- Template View styleで書けるのは「server pages」だけではない
- 【補】HTMLを一部place holderで置き換えている・scriptletを実行できるものを言っている
- scriptでも書ける
print $q->ul( $q->li('高機能アクセスカウンター'), $q->li('RevoCounter') );
When to Use It
- MVCのV
- Template View vs. Transform View
- Template Viewのメリデメ
- Two Step Viewを採用する場合はTransform Viewのほうが簡単
Example
略
英語
- clunky
- 不器用な
- at the cost of
- 〜を代償に
- disdain
- 軽蔑する