Twigは、Symfony開発者の若いテンプレートエンジンです。 著者は、高速で機能的なテンプレートエンジンとして位置付けています。 機能に関しては、Smarty 3とほぼ同じです。Twigの構文はわずかに異なり、高いパフォーマンスが宣言されています。 チェックしてみて?
テスト中
テスト中、処理時間が顕著になるように、十分に複雑なテンプレートを意図的に使用します。 実際、今回は評価を行い、そのために適切なスクリプトを準備します。
Smartyのコードは非常に簡単です。
$data = json_decode(file_get_contents('data.json'), true);
require('smarty/Smarty.class.php');
$smarty = new Smarty();
$smarty->compile_check = false;
$start = microtime(true);
$smarty->assign($data);
$smarty->fetch('demo.tpl');
echo microtime(true)-$start;
Twig :
$data = json_decode(file_get_contents('data.json'), true);
require('twig/Autoloader.php');
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array(
'cache' => 'templates_c',
'autoescape' => false,
'auto_reload' => false,
));
$start = microtime(true);
$template = $twig->loadTemplate('demo.tpl');
$template->render($data);
echo microtime(true)-$start;
: , .
— . . , , . - . — . , 10000 .
Smarty:
{$var0} {$var1} {$var2} {$var3} {$var4} ...
Twig:
{{ var0 }} {{ var1 }} {{ var2 }} {{ var3 }} {{ var4 }} ...
:
Smarty 3.1.1 | 16.320 . | 0.058 . |
Twig 1.2.0 | 9.757 . | 0.083 . |
- foreach. , 10 1000 .
Smarty:
{foreach $array as $item} {$item.id} {$item.title} {$item.var1} {$item.var2} {$item.var3} {$item.var4} {$item.var5} {$item.var6} {$item.var5} {$item.var6} {/foreach}
Twig:
{% for item in array %} {{ item.id }} {{ item.title }} {{ item.var1 }} {{ item.var2 }} {{ item.var3 }} {{ item.var4 }} {{ item.var5 }} {{ item.var6 }} {{ item.var5 }} {{ item.var6 }} {% endfor %}
:
Smarty 3.1.1 | 0.065 . | 0.009 . |
Twig 1.2.0 | 0.131 . | 0.082 . |
— . - :) , Smarty Twig. 500 , 500 , , 500 . .
:
Smarty 3.1.1 | 1.329 . | 0.002 . |
Twig 1.2.0 | 2.641 . | 0.121 . |
: Smarty Twig. , .
. Pentium Dual-Core T4200 (2 GHz), 3GB RAM — . PHP — 5.3. , Smarty Twig , .