Symfony2「blogチュートリアル(6) テンプレートの作成」

2011年12月13日 オフ 投稿者: KYO
Table of Contents

Symfony2「blogチュートリアル(6) テンプレートの作成」

Symfony2では、2つのテンプレートをサポート
1つは、クラシカルなPHPテンプレート
もう1つが、新機能の「Twig」テンプレート
以下、テンプレートの作成手順

【indexアクションのテンプレート】

indexアクションのテンプレートを作成します

index.html.twig

$ vim src/My/BlogBundle/Resources/views/Default/index.html.twig
<h1>Blog posts</h1>
<table>
<tr>
<td>Id</td>
<td>Title</td>
<td>CreatedAt</td>
</tr>
{# ここから、posts配列をループして、投稿記事の情報を表示 #}
{% for post in posts %}
<tr>
<td>{{ post.id }}</td>
<td><a href="{{ path(‘blog_show’, {‘id’:post.id}) }}">{{ post.title }}</a></td>
<td>{{ post.createdAt|date(‘Y/m/d H:i’) }}</td>
</tr>
{% else %}
<tr>
<td colspan="3">No posts found</td>
</tr>
{% endfor %}
</table>

文法
| {マークアップ | 内容 |
| {{ … }} | 値や式の結果をテンプレートに出力するために使います。 |
| {% … %} | 制御構文や関数等を呼び出す際に使います。 |
| {# … #} | テンプレートにコメントを記述するのに使います。複数行にわたって使用できます。レンダリング結果のHTMLには出力されません。 |

【showアクションのテンプレート】

showアクション用のテンプレートを作成します

show.html.twig

$ vim src/My/BlogBundle/Resources/views/Default/show.html.twig
<h1>{{ post.title }}</h1>
<p><small>Created: {{ post.createdAt|date(‘Y/m/d H:i’) }}</small></p>
<p>{{ post.body|nl2br }}</p>

nl2brフィルタの登録

$ vim app/config/config.yml
services:
twig.extension.text:
class: Twig_Extensions_Extension_Text
tags:
– { name: twig.extension }

【ブラウザで確認】

以下のURLへアクセスして、動作を確認します

http://somewhere/repos/blog.git/web/app_dev.php/blog

【参考】

ref. blogチュートリアル(6) テンプレートの作成