рд╕реНрдорд╛рд░реНрдЯреА PHP рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрджрд┐ рдЖрдк PHP рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред 2010 рдореЗрдВ, рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рддреАрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдорд╛рд░реНрдЯ 3 рдХреЛ PHP5 рдХреЗ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде, рдЦрд░реЛрдВрдЪ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рд╕реНрдорд╛рд░реНрдЯреА рдХреЛ рдЕрджреНрдпрддрди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдЖрдзреБрдирд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИрдВ, рдЬрд┐рд╕рдореЗрдВ
рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо ,
рд╕реИрдВрдбрдмреЙрдХреНрд╕ , рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
Twig Symfony рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдПрдХ рдпреБрд╡рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╣реИред рд▓реЗрдЦрдХ рдЗрд╕реЗ рдПрдХ рддреЗрдЬрд╝ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ
рд╕реНрдерд╛рди рджреЗрддреЗ рд╣реИрдВред рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕реНрдорд╛рд░реНрдЯреА 3 рдХреЗ рд╕рдорд╛рди рд╣реИред рдЯрд╣рдиреА рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ, рд╕рд╛рде рд╣реА рдШреЛрд╖рд┐рдд рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рднреА рд╣реИред рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ?
рдкрд░реАрдХреНрд╖рдг
рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рд╣рдо рдЬрд╛рдирдмреВрдЭрдХрд░ рдЬрдЯрд┐рд▓ рдкрд░реНрдпрд╛рдкреНрдд рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛред рджрд░рдЕрд╕рд▓, рдЗрд╕ рдмрд╛рд░ рд╣рдо рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрдкрдпреБрдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рд╕реНрдорд╛рд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
$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 . |
. , . Smarty Twig. , , , . Smarty тЙИ30% .
- 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 10 , Twig! , + Smarty Twig. , Smarty Twig, , .
тАФ . - :) , Smarty Twig. 500 , 500 , , 500 . .
:
| | |
---|
Smarty 3.1.1 | 1.329 . | 0.002 . |
Twig 1.2.0 | 2.641 . | 0.121 . |
Smarty 60 . , , . Smarty , . ! Twig , .
: Smarty Twig. , .
. Pentium Dual-Core T4200 (2 GHz), 3GB RAM тАФ . PHP тАФ 5.3. , Smarty Twig ,
.