LoginSignup
0
0

More than 5 years have passed since last update.

PHPTALからTwigへ移行するための対応表

Posted at

XHTMLと親和性の高いテンプレートエンジン「PHPTAL」を使っていました。
慣れてくると共にPHPTALの機能を使い出し、とうとう使い方がTwigっぽくなってきたので、いっそのこと移行してしまえと思ったのはいいものの・・・
似てたり違うところがあったりするので、慣れるまでの間のため、互いの対応をまとめました。

Twigで新しく出てきた概念

テンプレートファイル継承

{% extends 'filename' %}
http://twig.sensiolabs.org/doc/tags/extends.html

同名blockの継承

{% use 'filename' %}
http://twig.sensiolabs.org/doc/tags/use.html

ファイル読み込み割りいれ

{% include 'filename' %}
http://twig.sensiolabs.org/doc/tags/include.html


対応するものもしくは、それに近いもの

METAL

define-macro

{% macro 'macroname'(arg1, arg2) %}
...
{% endmacro %}

use-macro

{% import 'filename' as ailias %}
{{ ailias.macroname(arg1, arg2..) }}

define-slot

{% block 'blockname' %}
...
{% endblock %}

fill-slot

{% embed 'filename' %}
{% block 'blockname' %} filled contents {% endblock %}
{% endembed %}

TAL

block

{% block %}
...
{% endblock %}

repeat

{% for row in rows %}
...
{% endfor %}

define

{% set var = 'value' %}

condition

{% if boolean %}
...
{% elseif boolean %}
...
{% else %}
...
{% endif %}

TALES

exists:

{% if var is defined %}
...
{% endif %}

true:

{% if var is not empty %}
...
{% endif %}

structure

{{ var|raw }}

default

{{ var|default('defaultValue') }}

php:

これが必用な時は大抵FilterもしくはFunctionなので、Twig_SimpleFilterなどのTwig_Simple*系クラスが用意されています。
これを利用してcallableで手軽に追加しましょう。

方法はこちらを参考に:
http://twig.sensiolabs.org/doc/advanced.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0