TWIGの入門的な部分ができたので
ヘッダーとフッターのテンプレート化に
挑戦します
いれた時のイメージは下のとおり
ベースになるテンプレートファイルを作成する
/views/base.html.twig
<meta charset="UTF-8"> <title>{{ title }} | sitemap作成ツール</title> {% block head %} {% endblock head %} {{ include('_header.html.twig') }} {% block body %}{% endblock %} {{ include('_footer.html.twig') }}
ベースの中にヘッダーのテンプレート読み込ませています
{{ include('_header.html.twig') }}
そのベースで読んでいたヘッダーとフッターを作成する
/views/header.html.twig
<!-- header --> ヘッダー部分<br>
/views/_footer.html.twig
<div id="footer"> フッター<br> </div>
呼び出しもとのテンプレを作成する
/views/index.html.twig
{% extends 'base.html.twig' %} {% block headtag %} <!-- ページ特有メタタグを記載 --> {% endblock %} {% block body %} メインコンテンツ <br> <br> {% endblock %}
extends 'base.html.twig'
この部分がbaseを継承(extends)しています
{% block headtag %} <!-- ページ特有メタタグを記載 --> {% endblock %}
block〜endblockで
baseの中、下記の部分を書き換えています
{% block head %} {% endblock head %}
呼び出しもとのテンプレを作成する
/main.php
require_once './vendor/autoload.php'; Twig_Autoloader::register(); //テンプレートの読み込み $loader = new Twig_Loader_Filesystem("views"); $twig = new Twig_Environment($loader); $template = $twig->loadTemplate("index.html.twig"); $template->display(array("title" => "テストページ"));
TWIGの入門的な部分ができたので
ヘッダーとフッターのテンプレート化に
挑戦します
長かったの2回にわけました
ベースになるテンプレートファイルを作成する
/views/base.html.twig
<meta charset="UTF-8"> <title>{{ title }} | sitemap作成ツール</title> {% block head %} {% endblock head %} {{ include('_header.html.twig') }} {% block body %}{% endblock %} {{ include('_footer.html.twig') }}
ベースの中にヘッダーのテンプレート読み込ませています
{{ include('_header.html.twig') }}
そのベースで読んでいたヘッダーとフッターを作成する
/views/header.html.twig
<!-- header --> ヘッダー部分<br>
/views/_footer.html.twig
<div id="footer"> フッター<br> </div>
呼び出しもとのテンプレを作成する
/views/index.html.twig
{% extends 'base.html.twig' %} {% block headtag %} <!-- ページ特有メタタグを記載 --> {% endblock %} {% block body %} メインコンテンツ <br> <br> {% endblock %}
extends 'base.html.twig'
この部分がbaseを継承(extends)しています
{% block headtag %} <!-- ページ特有メタタグを記載 --> {% endblock %}
block〜endblockで
baseの中、下記の部分を書き換えています
{% block head %} {% endblock head %}
呼び出しもとのテンプレを作成する
/main.php
require_once './vendor/autoload.php'; Twig_Autoloader::register(); //テンプレートの読み込み $loader = new Twig_Loader_Filesystem("views"); $twig = new Twig_Environment($loader); $template = $twig->loadTemplate("index.html.twig"); $template->display(array("title" => "テストページ"));
実際の実行結果
ソース
次はこのテンプレートに
twitter bootstrapをいれます