CATEGORY
EC-CUBE
【EC-CUBE】v2系と v3系、テンプレートに感じた違い
2,291 PV
前回 EC-CUBE 3系のデモテンプレートを準備したので、まずはざっとソースを眺めていたのですが、正直2系とそんなに大きな差は感じませんでした。2系の構成は大体頭に入っているので、今回は3系のテンプレートを見てなんとなく違うなと感じたところを上げてみます。
変数の書き方
これは当たり前なのですが、今まで smarty で書かれていた部分が twig の記述になっています。具体的に言うと<!--{ **** }-->と書いていたものが、{% **** %}(関数)と{{ **** }}(変数)に置き換わっています。
でもまぁ、この辺はそんなに戸惑うところではなさそうです。
テンプレートのロジック
これに関してはちょっと言葉では説明しにくいので、図を使って説明します。もともと僕の方が2系のロジックを勘違いしていた可能性もあるのですが、その場合はご指摘ください。
EC-CUBE 2系
2系ではsite_frame.phpを基点にsite_main.php -> 各テンプレート.phpとなっていたようで、どのテンプレートも基本は必ずsite_frame.php -> site_main.phpを通る仕組みになっていました(classファイル側で変更は可能)。
EC-CUBE 3系

3系ではまず各テンプレート.twigが読み込まれているようで、各テンプレートが拡張(extends)としてdefault_frame.twigを取り込み、各テンプレート内で記述しているそれぞれの{% block %}と合成しているようでした。このテンプレートの差は結構大きい気がします。
たとえば今までsite_frame.php内でifを使って分岐していた各ページ毎の設定を、default_frame.twig自体を何種類か用意することでテンプレート側から制御するとか、いいかもしれません。
パッといま思いつくのはこの程度ですが、テンプレートのみを操作する分には2系よりも大分触りやすくなっている印象を受けました。サイトの構成もそんなに差がなさそうですし、2系経験者は比較的楽に入り込めそうです。
Twigになってもなんとかなりそうだー☆
CATEGORY : EC-CUBE
