Twigでyieldっぽいことをする
なぜだかPHPを書いています。こんにちわ。
Twigというテンプレートエンジンを使ってみることにしたのですが、erbでやるyieldっぽいことをしたいなと思って調べてみた。
yieldっぽいとは
いろいろのページで使い回すレイアウト用のテンプレートが以下のようにあったときに
<html> <head> <title>hoge</title> </head> <body> <%= yield %> </body> </html>
以下のようなHTMLをrenderすると、
<p>Hello world!</p>
テンプレートのyield部分に埋め込んでくれて最終的に以下のようなHTMLを吐き出す機能。
<html> <head> <title>hoge</title> </head> <body> <p>Hello world!</p> </body> </html>
子が自分自身を親に埋め込むみたいなそんなイメージ。
Twigでやってみる
layout.html
みたいな名前で(名前はなんでもいい)テンプレートを保存する。以下のような感じ。
<html> <head> <title>hoge</title> </head> <body> {% block content %} {% endblock %} </body> </html>
まぁ要はblock
ってのを用意してあげればよい。
そういした上でblockの中身となるファイルを用意する。以下のような感じ。
{% extends '/layout.html' %} {% block content %} <p>ようこそ!{{ name }}さん!</p> {% endblock %}
んで、あとはrenderしてやるだけ。
$twig->render('index.html', ['name' => 'みりん']);
簡単楽チン。
雑談
そんなことよりフロントエンドの勉強がしたい。