読者です 読者をやめる 読者になる 読者になる

masalibの日記

システム開発、運用と猫の写真ブログです

クローラーのサービスを作る その4:TWIGの調査2

TWIGの入門的な部分ができたので
ヘッダーとフッターのテンプレート化に
挑戦します

いれた時のイメージは下のとおり
f:id:masalib:20150820192508j:plain

ベースになるテンプレートファイルを作成する
/views/base.html.twig

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{{ title }} | sitemap作成ツール</title>
        {% block head %}
        {% endblock head %}

   </head>
    <body>

  {{ include('_header.html.twig') }}
        {% block body %}{% endblock %}
  {{ include('_footer.html.twig') }}

    </body>
</html>

ベースの中にヘッダーのテンプレート読み込ませています

{{ 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

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{{ title }} | sitemap作成ツール</title>
        {% block head %}
        {% endblock head %}

   </head>
    <body>

  {{ include('_header.html.twig') }}
        {% block body %}{% endblock %}
  {{ include('_footer.html.twig') }}

    </body>
</html>

ベースの中にヘッダーのテンプレート読み込ませています

{{ 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" => "テストページ"));


実際の実行結果
f:id:masalib:20150822122010j:plain

ソース
f:id:masalib:20150822122033j:plain

次はこのテンプレートに
twitter bootstrapをいれます