SLIDE 1 یسانشراک سرد راهب۱۳۹۱-۹۲
هاگشنادص یتعن فیرش یسدنهم هدکشناد رتویپماک
تمسق۸ بلاق روتوم Twig
SLIDE 2
ربراک اب طابترا
ربراک تامادقا تفایرد ربراک هب تاعلبطا شیامن( View )
بلاق( Template )شیامن
،یلاخ یاهاجاه هرفح ( Place Holders )
2
Hello Mohammad! Welcome to Web Programming’s class
SLIDE 3
Twig
کی Template Engine کیتنناپماک زا Symfony2
3
Hello {{ name }} ! Welcome to {{ course }}’s class ["name" => "Mohammad", "course" => "Web Programming"]
SLIDE 4
تارابع
Context اهریغتم اه هیارآ وءایشا
4
{{ name }} {{ person.name }} {{ person*‘name’+ }} {{ attribute(person, ‘last-name’) }} {{ now - then }} {% set then=1391 %}
SLIDE 5
اهرتلیف
5
{{ name|title }} {{ name|upper }} {{ names|join(“, ”) }} {% filter upper }} {% endfilter %}
SLIDE 6
یلرتنک تاروتسد
6
<ul> {% for person in persons %} <li>{{ person.name|e }}</li> {% endfor %} </ul> {% if person .name|length > 0 %} {% endif %}
SLIDE 7
عباوت
7
{% for i in range(0, 3) %} {{ i }} : {{ names[i] }}, {% endfor %} range(low=1, high=10, step=2) {{ "now"|date(timezone="Europe/Paris") }}
SLIDE 8
Composer
ریدماه یگتسباو
8
composer.json { "require": { "twig/twig": "1.*" } } > composer install
SLIDE 9
Composer Auto Loading Loader Environment
9
require_once ('vendor/autoload.php'); $loader = new Twig_Loader_String(); $twig = new Twig_Environment($loader); $result = $twig->render($template, $data);
SLIDE 10
عاونا Loader
10
$loader = new Twig_Loader_Filesystem ('/path/to/templates'); $twig = new Twig_Environment ($loader, [ 'cache' => '/path/to/compilation_cache']);
SLIDE 11
عاونا Loader
11
$loader = new Twig_Loader_Array([ 'index.html' => 'Hello {{ name }}!‘]); $twig = new Twig_Environment($loader); $twig->render('index.html', [ 'name' => ‘Mohammad‘ ]);
SLIDE 12
Extensionاه
رتلیف تاروتسد Loader ...
Extensioهدامآ یاه
Escaper Optimizer
12
SLIDE 13
13
{{ user.username|raw }} {{ user.username|e}} {{ user.username|e('js') }} {{ user.username|e('css') }} {{ user.username|e('url') }} {{ user.username|e('html_attr') }} {% autoscape 'js' %} {% endautoscape %}
SLIDE 14
include ندرب ثرا هب Context
14
<div id="sidebar"> {% include 'sidebar.html' %} </div> {% for post in posts %} {% include "post_box.html" %} {% endfor %}
SLIDE 15
تثارو
Skeleton Blocks Overriding {{ parent() }}
15
base.html: <head> {% block head %} {% endblock %} </head> page.html : {% extends ‘base.html' %} {% block head %} <script ...></script> {% endblock %}
SLIDE 16
Symfony Book, 2.2. http://twig.sensiolabs.org/documentation
16