
рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП PHP рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХрдИ рд╡рд░реНрд╖реЛрдВ рддрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ, рдФрд░ рдЖрдкрдХреЛ рджреВрд╕рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рд╕реНрдорд╛рд░реНрдЯреА рдФрд░ рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рд╕рд░рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмреЛрдЭрд┐рд▓ рд▓рдЧ рд░рд╣реЗ рдереЗ рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 2004 рдореЗрдВ рд╡рд╛рдкрд╕ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рд▓рдЧрд╛рддрд╛рд░ рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдЕрдиреНрдп рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЕрднреА рднреА рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред
рдЕрд▓рдЧ рд╕реЗ .esud.info рдкрд░, рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░реВрд╕реА, рдЕрдВрдЧреНрд░реЗрдЬреА рдФрд░ рдЬрд░реНрдорди рддреАрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рджреЗрдЧреА рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ
github.com/esud/separate рдкрд░ Github рдкрд░ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛
рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
ru.separate.esud.info/documentation рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдиреАрдЪреЗ рдореИрдВ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред
рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рддреЗрдЬрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореБрдЭреЗ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдЗрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╕рд░рд▓ рдФрд░ рдЕрджреНрд╡рд┐рддреАрдп рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рдерд╛ред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╣реИред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ (index.htm):
${MY_VARIABLE}
PHP рдХреЛрдб:
require_once './separate/SeparateTemplate.php'; $t = SeparateTemplate::instance()->loadSourceFromFile('./index.htm'); $t->assign('MY_VARIABLE', 'my value'); $t->display();
рдирд┐рд╖реНрдХрд░реНрд╖:
my value
рдЖрдк рдЧрддрд┐рд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕реВрдЪрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ (index.htm):
<ul> <li>${ROW_NUMBER}</li> </ul>
PHP рдХреЛрдб:
require_once './separate/SeparateTemplate.php'; $t = SeparateTemplate::instance()->loadSourceFromFile('./index.htm'); for($row = 1; $row <= 3; $row++) { $myBlock = $t->fetch('my_block'); $myBlock->assign('ROW_NUMBER', $row); $t->assign('my_block', $myBlock); } $t->display();
рдирд┐рд╖реНрдХрд░реНрд╖:
<ul> <li>1</li> <li>2</li> <li>3</li> </ul>
рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдкрдг рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдордп рд╕реВрддреНрд░рдХрд╛рд░ рдпреВрдирд┐рдХреНрд╕-рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдорд╛рди рдХреЛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╕рдордп рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ (index.htm):
${(Time)UNIX_TIMESTAMP}
PHP рдХреЛрдб:
require_once './separate/SeparateTemplate.php'; require_once './separate/formatter/TimeFormatter.php'; $t = SeparateTemplate::instance()->loadSourceFromFile('./index.htm'); $t->assign('UNIX_TIMESTAMP', time()); $t->display();
рдирд┐рд╖реНрдХрд░реНрд╖:
08:55
рдЖрдк рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, ToUpper formatter рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ (index.htm):
${(ToUpper)MY_VARIABLE}
PHP рдХреЛрдб:
require_once './separate/SeparateTemplate.php'; class ToUpperFormatter extends AbstractValueFormatter { public function formatValue($value) { return strtoupper($value); } } $t = SeparateTemplate::instance()->loadSourceFromFile('./index.htm'); $t->assign('MY_VARIABLE', 'my value'); $t->display();
рдирд┐рд╖реНрдХрд░реНрд╖:
MY VALUE
рд╕реЗрдкрд░реЗрдЯрдЯреЗрдореНрдкрд▓реЗрдЯ.рд╕рд╛рдЗрди (...) рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдкрд░реЗрдЯрдЯреЗрдореНрдкрд▓реЗрдЯ.рд╕реНрд╕рд┐рдЧреНрдирдлреЛрд░реНрдмреНрд▓реЙрдХ (...)ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреНрд▓реЙрдХ (рдЖрдЧреЗ рдЙрдк-рдмреНрд▓реЙрдХ рд╕рд╣рд┐рдд) рдореЗрдВ рд╣реИред рдЕрдиреНрдп рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдЪрд░ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реЗрдкрд░реЗрдЯрдЯреЗрдореНрдкрд▓реЗрдЯ.рд╕реНрд╕рд┐рдЧреНрдирдлреЙрд░рдЧреНрд▓реЛрдмрд▓ (...) рд╡рд┐рдзрд┐ рд╕рднреА рд╡реИрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЪрд╛рд╣реЗ рд╡реЗ рдХрд┐рд╕ рднреА рдмреНрд▓реЙрдХ рдореЗрдВ рд╣реЛрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╛рдЗрд▓реЗрдВ рдореБрдЦреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХреАрдХреГрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рд╢реАрд░реНрд╖рд▓реЗрдЦ рдлрд╝рд╛рдЗрд▓ (рд╢реАрд░реНрд╖ рд▓реЗрдЦ)
<html> <body>
рдкрд╛рдж рдлрд╝рд╛рдЗрд▓ (рдкрд╛рдж рд▓реЗрдЦ)
</body> </html>
рдореБрдЦреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдХреЛрдб (index.htm):
<p></p>
рдирд┐рд╖реНрдХрд░реНрд╖:
<html> <body> <p></p> </body> </html>
рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рднреА IF рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
HTML ...
рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдореЗрдВ рд╣реА рдХреЛрдИ рднреА рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред PHP рдХреЛрдб рдореЗрдВ, рд╕рднреА рдЙрдкрд▓рдмреНрдз рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдкрд░реЗрдЯрдЯреЗрдордкреНрд▓реЗрдЯ .getParameters () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ (index.htm):
PHP рдХреЛрдб:
require_once './separate/SeparateTemplate.php'; $t = SeparateTemplate::instance()->loadSourceFromFile('./index.htm'); print_r($t->getParameters());
рдирд┐рд╖реНрдХрд░реНрд╖:
Array ( [NUMBER_OF_ROWS] => 100 )
рдкреБрдирд╢реНрдЪ: рдпрд╣ habrahabr.ru рдкрд░ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛ рдФрд░ рдЖрдк рдЕрд▓рдЧ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ +1 рдХрд░рдиреЗ рдкрд░ рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреАред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЗ рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред