рд╕реНрдорд╛рд░реНрдЯреА рдмрдирд╛рдо рдЯрд╣рдиреА: рдкреНрд░рджрд░реНрд╢рди

рд╕реНрдорд╛рд░реНрдЯреА 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.116.320 .0.058 .
Twig 1.2.09.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.10.065 .0.009 .
Twig 1.2.00.131 .0.082 .
: Smarty 10 , Twig! , + Smarty Twig. , Smarty Twig, , .


тАФ . - :) , Smarty Twig. 500 , 500 , , 500 . .

:
Smarty 3.1.11.329 .0.002 .
Twig 1.2.02.641 .0.121 .
Smarty 60 . , , . Smarty , . ! Twig , .


: Smarty Twig. , .
. Pentium Dual-Core T4200 (2 GHz), 3GB RAM тАФ . PHP тАФ 5.3. , Smarty Twig , .


Source: https://habr.com/ru/post/In128083/


All Articles