рдиреЛрдб.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП NodeSmarty рдирдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди (3.beta)

рдЫрд╡рд┐ рд╢рд╛рдпрдж рд╣рд░ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдиреЗ рд╕реНрдорд╛рд░реНрдЯреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди (php) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореИрдВ рдЕрдХреНрд╕рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╢реМрдХреАрди рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдЦреЛрдЬрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб (рдиреЛрдб.рдЬреЗрдПрд╕, рд╣рд╛рдБ)ред рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рдРрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ: рдИрд╕реАрдЯреА , рдЬрд╕реНрдЯ , рдореНрдпреВ ред рд╡реЗ рд╕рднреА, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╕рд┐рдВрдЯреЗрдХреНрд╕ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдереЗред

рдареАрдХ рд╣реИ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрд░реЗрдВред рдХрд╛рдо рдкрд░ рд╕рдордп рдХреА рддрд▓рд╛рд╢ рдФрд░ рдХрднреА-рдХрднреА "рдХреИрдк" рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, NodeSmarty рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╕реНрдорд╛рд░реНрдЯреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдЧрд╛ред



рдЗрд╕рд▓рд┐рдП, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рд▓рдЧрднрдЧ 4 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рд╕рд┐рддрдВрдмрд░ 2012 рдореЗрдВ рдЕрдкрдиреА рдЬрдбрд╝реЗрдВ рдЬрдорд╛ рд▓реАрдВ, рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рд░реВрдк рд▓реЗ рд▓рд┐рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреВрд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрдХрд▓рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕реНрдорд╛рд░реНрдЯреА (Smarty_Compiler.class.php рдлрд╝рд╛рдЗрд▓) рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗред рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рд╕рд╛рджрдЧреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрдб рдореЗрдВ рдХрдЯреМрддреА рдХреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ "рдореЗрд░реА рд╢реИрд▓реА" рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рднреА рд╡рд┐рд╢рд╛рд▓ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ (рдФрд░ рд╡реИрд╕реЗ, рдЕрднреА рднреА рдЙрдирдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрдЪрд░рд╛ рдерд╛), рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рддрд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред

рдЪреВрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░рди-рдЗрди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрдЧ рдкрд╛рдП рдЬрд╛рдПрдВрдЧреЗред рдореБрдЭреЗ рдпрд╣ рднреА рдкрдХреНрдХрд╛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рд╢рд┐рдХрд╛рдпрддреЗрдВ рд╣реЛрдВрдЧреА (рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдпрд╣ "рдлрд╝рдВрдХреНрд╢рди" рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдореБрдЭреЗ рдХреЗрд╡рд▓ рдХреЛрдб рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдФрд░ рд╕рдВрднрд╡ рд╣рдж рддрдХ, рджреЛрдиреЛрдВ рд╕реБрдзрд╛рд░ рдФрд░ рдирдП рдХрд╛рд░реНрдп рдХрд░реЗрдВред

рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рдЙрджрд╛рд╣рд░рдг:

compiler.js:
var NodeSmarty = require('./NodeSmarty/'); var Template = new NodeSmarty(); Template .setTemplateDir('./templates/') .setCompileDir('./compile/') .setCacheDir('./cache/'); var Array = ['val1', 'two']; Template.assign({ 'Value':'first', 'number':10, 'array':Array }); var Final = Template.fetch('template.tpl', function(data) { console.log(data); }); 


template.tpl:
 {include file="header.tpl.html"} {$Value} {$number*10/20} {if !$Value} //... {elseif $number = $Value} //... {else} //... {/if} {* comment *} {literal} for(var di=0; di < 10; di++) { console.log(di); } {/literal} {foreach from=$array item=Foo key=Key} Item: {$Foo} key: {$Key} {/foreach} 


рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ EJS рдФрд░ JUST рд╕реЗ рддреЗрдЬ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдлрд╝рд╛рдЗрд▓ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдбред рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдкреНрд▓рд╕ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реЛрдЧрд╛) - рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рдирд╛ рднреА рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рдБ, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрджрд▓ рдЧрдП рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВ)ред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╕ рдЕрдЧрд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧрддрд┐ рддрджрдиреБрд╕рд╛рд░ рдмрдврд╝ рдЬрд╛рдПрдЧреА, рдФрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рднреА рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛!

1000 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдХреА рддреБрд▓рдирд╛:

рдЧрддрд┐ рддреБрд▓рдирд╛

рдХрд╛рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ред

рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рддреА рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИред рдпрджрд┐ рдмрд╛рдж рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдПрдХ рдУрдкрдирд┐рдВрдЧ рдЯреИрдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: { рдФрд░ рдПрдХ рд╕рдорд╛рдкрди рдЯреИрдЧ: } (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ)ред
рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдЧ рдХреЛ рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ 2 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХрдорд╛рдВрдб рдпрд╛ рдЪрд░ред рдЪрд░ рд╡рд░реНрддрдорд╛рди рдбреЙрд▓рд░ рдЪрд┐рд╣реНрди ( $ ) рджреНрд╡рд╛рд░рд╛ рдХрдорд╛рдВрдб рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЪрд░ рдФрд░ рдЖрджреЗрд╢ рджреЛрдиреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкрд╛рда рдХрд╛ рдПрдХ рдирд┐рдХрд╛рд╕реА рд╣реЛрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╣рд╛рдБ eval рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди () )ред

nodesmarty.com рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ: NodeSmarty.com

github.com GitHub.com рд▓рд┐рдВрдХ: github.com/lampaa/NodeSmarty

NodeJS рдиреЛрдб.рдЬреЗрдПрд╕ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ: рдиреЛрдбред рдЬреЗрдПрд╕

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


All Articles