äÙÇã ãÍÑß ÓãÇÑÊì Smarty ÇáÞæÇáÈ áÝÕá ÇáÈÑãÌÉ æ ÇáÊÕãíã PHP Template Engine
ÈÑãÌÉ/ÊÕãíã ãæÇÞÚ ÇáÇäÊÑäÊ æåäÏÓÉ ÇáÈÑãÌíÇÊ (ãÍÑß ÓãÇÑÊí):
https://www.smarty.net/
ÞÏ ÊÈÏà ÈÈÑãÌÉ ÃÍÏ ãæÇÞÚ ÇáæÈ , æÝÞ ÊÕãíã ãÇ ÞãÊ ÈÊäÌíÒå , Ãæ ÞÇã ãÕãã æÈ ãÎÊÕ ÈÅäÌÇÒå áß , æáäÝÊÑÖ ÈÃäß ÊÈÑãÌ ÈáÛÉ php , æÈÚÏ ÇäÊåÇÁ ÈÑãÌÉ ÇáãæÞÚ , ÇÖØÑ ãÕãã ÇáãæÞÚ Ãä íÞæã ÈÈÚÖ ÇáÊÚÏíáÇÊ Úáì ÊÕÇãíãå , ÝÊÌÏ äÝÓß ãÖØÑÇð Ýí ÃÛáÈ ÇáÃÍíÇä – áíÓ ÏæãÇ æÐáß ÈÍÓÈ ÇáãäåÌíÉ ÇáÊí ÊÊÈÚåÇ Ýí ÃÓáæÈ ÈÑãÌÊß – Åáì ÊÚÏíá Ýí ÇáÑãÇÒ ÇáÐí ÞãÊ Èå ÓÇÈÞÇð áíÊßíÝ ãÚ ÇáÊÕãíã ÇáÌÏíÏ , æåÐå åí ÇáÍÇáÉ ãÚ ÃíÉ ÊÚÏíáÇÊ ÞÏ ÊØÑà Úáì ÇáÊÕãíã ¿! ÝãÇ ÇáÍá¿ æåá åÐå ÇáÚãáíÉ ãäØÞíÉ ÈÑÃíß ¿¿!
äÚáã ÈÃä ÃÍÏ ÇáãÈÇÏÆ ÇáÃÓÇÓíÉ Ýí åäÏÓÉ ÇáÈÑãÌíÇÊ íßãä Ýí ÚÒá ãäØÞ ÇáÚãá business logic Úä ÇáÚÑÖ – ÇáÊÕãíã- presentation . æÍÊì äÍÇÝÙ Úáì åÐÇ ÇáãÈÏà Ýí ÚãáäÇ ÝÞÏ Êã ÇÈÊßÇÑ ÇáÚÏíÏ ãä ÇáÃÏæÇÊ æÇáÈÑãÌíÇÊ æÇáãßÊÈÇÊ ÇáãÓÇÚÏÉ Úáì ÊäÙíã ÚãáíÉ ÇáÑãÇÒ æÇáãÍÇÝÙÉ Úáì ãÈÇÏÆ åäÏÓÉ ÇáÈÑãÌíÇÊ ÞæáÇð æÝÚáÇð, æãä ÃÔåÑåÇ ÓãÇÑÊí smarty , ÝãÇ åæ ÓãÇÑÊí , æßíÝ íÊã ÇÓÊÎÏÇãå æÇáÇÓÊÝÇÏÉ ãä ÇáÝÚÇáíÇÊ ÇáÊí íÊÞÏãåÇ¿¿
ÊÚÑíÝ äÙÇã ÇáÞæÇáÈ smarty
íÚÊÈÑ ÓãÇÑÊí ÈãËÇÈÉ ÃÍÏ ãÍÑßÇÊ ÇáÞæÇáÈ template engineÇáãÎÕÕÉ ááÛÉ php. æÈÔßá ÃßËÑ ÊÍÏíÏÇð, Ýåæ íæÝÑ áäÇ æÓíáÉ ÓåáÉ æÈÓíØÉ áÚÒá ãäØÞ ÇáÊØÈíÞ application logicæÇáãÍÊæì Úä ÇáÚÑÖ presentation . æÊÚÊÈÑ åÐå ÇáØÑíÞÉ ÈãËÇÈÉ ÇáØÑíÞÉ ÇáãËáì Ýí ÇáÍÇáÇÊ ÇáÊí íßæä ÝíåÇ ãÈÑãÌ ÇáÊØÈíÞ æãÕãã ÇáÞæÇáÈ ÔÎÕÇä ãäÝÕáÇä.
ÓãÇÑÊí åæ äÙÇã ÞæÇáÈ ãÎÕÕ ááÜ PHP íÓåá ÇáÝÕá Èíä ÇáÇßæÇÏ ÇáÈÑãÌíÉ æÇáÊÕãíã
ÈÛÑÖ ÊÓåíá ÇáÚãá Èíä ÇáãÈÑãÌ æÇáãÕãã Ýáßá ãäåãÇ ÏæÑå æÚãáå ÇáÎÇÕ
ãËÇá :
åäÇ äáÇÍÙ Çä Úãá ÇáãÈÑãÌ æÇáãÕãã ãÊÚáÞÇä ÈÈÚÖåãÇ ÇáÈÚÖ æÇáãÝÑæÖ Çä íäÝÕáÇ ÇäÝÕÇáÇ ÊÇãÇäÝÊÑÖ Çä áÏíß ÕÝÍÉ æíÈ ÇÎÈÇÑíÉ ÊÊÖãä ÚäæÇä ÇáÎÈÑ ãÞÏãÉ Úä ÇáÎÈÑ æãÍÊæì
ÇáÎÈÑ ßá åÐå ÚäÇÕÑ íÞæã ÇáãÈÑãÌ ÈÇäÔÇÆåÇ ÈÛíÉ ÇíÕÇá ÇáÎÈÑ
ÈØÑíÞÉ íÝåãåÇ ÇáÌãíÚ æÈÔßá æÇÖÍ , ÈÇáØÑíÞÉ ÇáßáÇÓíßíÉ ÇáãÈÑãÌ íÖÚ ÇßæÇÏ
ÇáÊÕãíã æÇáÈÑãÌÉ ãÏãæÌÉ ãÚ ÈÚÖåÇ ÕÍíÍ (áí íÞæá ÛáØ áÇÍÙ ãÚí Çä ÇáÊÕãíã ãÊÚáÞ ÈßæÏ ÇáÈÑãÌÉ
Çæßí äÝÊÑÖ Ýíæã ãÇ ÇáãÈÑãÌ ÇÑÇÏ ÊÛííÑ ãÍÊæì áãÍÉ Úä ÇáÎÈÑ ÝãÇÐÇ ÓíÍÏË
Óíßæä ÇáãÕãã ãÌÈÑÇ Úáì ÇÚÇÏå ÊÕãíãå áÇä ÇáßæÏ ÇáÈÑãÌí ÊÛíÑ
äÝÓ ÇáÔÓÁ ááãÈÑãÌ ÝÇÐÇ ÇÑÇÏ ÇáãÕãã ÊÛííÑ Çí ÔíÁ áÇÈÏ ãä ÊÛííÑ ÇáßæÏ ÇáÈÑãÌí
áÐÇáß ÝäÙÇã ÇáÞæÇáÈ ÓãÇÑÊí íÓãÍ áß ÈÝÕá ÇáßæÏ ÇáÈÑãÌí Úä ÇáÊÕãíã (ÇßæÇÏ html ....)
<--- áÇ íÒÇá áÏí ÛãæÖ ßÈíÑ ÇÔß Ýí ßáÇãß --->
áÇÍÙ ÇáÇÓÊÇíáÇÊ Ýí ãäÊÏíÇÊ ÇáÝí Èí áæ Çä ÇáßæÏ ÇáÈÑãÌí ãÊÚáÞ ÈÇáÊÕãíã áãÇ ÔÇåÏäÇ åÐÇ Çáßã ÇáåÇÆá ãä ÇáÇÓÊÇíáÇÊ ÕÍ
ÇáÝí Èí ÍÓÈ Úáãí íÓÊÚãá äÙÇã ÞæÇáÈ ÎÇÕ Èå ãÇ ÚáíäÇ ÇÏÑÌÊå åäÇ ááÝåã ÝÞØ
ÇÐÇ ÎáÇÕÉ ÞæáäÇ Ýí ÍÇá ÇÓÊÚãÇáäÇ áäÙÇã ÇáÞæÇáÈ áä äßæä ãÌÈÑíä Úáì
ÊÛííÑ ÇáÊÕãíã Ýí ÍÇá ÊÛíÑ ÇáßæÏ Çæ ÇáÚßÓ
ÂáíÉ ÇáÚãá :
íÚÊãÏ ÓãÇÑÊí ÈÈÓÇØÉ ãÈÏà ÇáÞæÇáÈ Ýí Úãáå , ÝÈÚÏ Ãä íÞæã ÇáãÕãã ÈÊÕãíã ÇáÞÇáÈ ÇáÐí íÑÛÈ Ãä íßæä ÇáÚÑÖ Ýíå , íÊã ÊÖãíä ãÊÍæáÇÊ ÓãÇÑÊí Öãäå ,Êáß ÇáãÊÍæáÇÊ ÇáãÓÄæáÉ Úä ÚÑÖ ÇáÞíã ÇáãØáæÈÉ Öãä åÐå ÇáÞæÇáÈ ÈÇáÞíã ÇáãäÇÓÈÉ æÝí ÇáæÞÊ ÇáãäÇÓÈ ÈÇáÇÚÊãÇÏ Úáì ÅÓäÇÏ ÇáÞíã ÇáÕÍíÍÉ æÇáãØáæÈÉ áåÇ æÝÞ ãäØÞ ÇáÚãá ÇáãØáæÈ.
ÈãÚäì ÂÎÑ, íÞæã ãÕãã ÇáÞæÇáÈ ÈÇÓÊÎÏÇã ãÒíÌ ãä ÊÇÛÇÊ html ãÚ ÊÇÛÇÊ ÇáÞÇáÈ template tags ÈåÏÝ ÊÔßíá ÚÑÖ ãÓÊÞá Úä áÛÉ ÇáÈÑãÌÉ – ÓíÊÖÍ áäÇ åÐÇ ÇáßáÇã ÈÔßá Úãáí ÚäÏ ØÑÍ ÇáãËÇá ÇáÈÓíØ ÈÚÏ Þáíá.
æÈÐáß Ýí ÍÇá ÞÑÑ ãÕãã ÇáÞæÇáÈ Ãä íÚíÏ åíßáÉ ÊÕãíã ÇáÞæÇáÈ ÈÔßá ßÇãá ÝÅä Ðáß áä íÄËÑ Úáì ÇáãÈÑãÌ æáä íÖØÑ ÇáãÈÑãÌ Åáì ÅÚÇÏÉ ÇáÈÑãÌÉ ãä ÌÏíÏ áÊÊßíÝ ãÚ ÊÕÇãíã ÇáÞæÇáÈ ÇáÌÏíÏÉ. æÈÇáãËá, ÝÝí ÇáÍÇáÉ ÇáÊí ÞÏ íÞÑÑ ÝíåÇ ÇáãÈÑãÌ ÊÛíÑ ãäØÞ ÇáÚãá ÇáÐí ßÇä íÓíÑ æÝÞå ÝÅä Ðáß áÇ íÞÊÖí Ãä íÞæã ãÕãã ÇáÞæÇáÈ ÈÇáÞíÇã ÈÃí ÊÛíøÑÇÊ áÊÊæÇÝÞ ãÚ ÇáãäØÞ ÇáÌÏíÏ Ýí ÇáÚãá.
ÇÚÏÇÏ ÈíÆÉ Úãá ÓãÇÑÊí ãÚ ãËÇá ÊæÖíÍí ÈÓíØ :
åÇáß ÚÏÉ ÃÓÇáíÈ ãÎÊáÝÉ áÊÈÏà ÈÊÕãíã ãæÞÚ íÓÊÎÏã ÓãÇÑÊí ,æáßäí ÓÃÎÊÇÑ ØÑíÞÉ ÈÓíØÉ ææÇÖÍÉ:
1:ÊÞæã Ýí ÇáÈÏÇíÉ ÈÊäÒíá ÇáãÌáÏ ÇáãÖÛæØ ÇáÐí íÍÊæí Úáì ãßÊÈÇÊ ÓãÇÑÊí ÇáÃÓÇÓíÉ ÇááÇÒãÉ áÅÚÏÇÏ ÈíÆÉ ÇáÚãá – ÇáãÌáÏ ãæÌæÏ Ýí ãæÞÚ ÓãÇÑÊí www.smarty.net.
2:ÊÞæã ÈÝß ÖÛØ ÇáãÌáÏ Öãä ãÌáÏ íÏÚì – Úáì ÓÈíá ÇáãËÇá – smarty , æíÊæÇÌÏ åÐÇ ÇáãÌáÏ Öãä ãÌáÏ ÇáãæÞÚ ÇáÐí ÊÞæã ÈÈÑãÌÊå , æÈÚÏ Ýß ÇáÖÛØ ÓÊÌÏ Öãä ãÌáÏ ÓãÇÑÊí ãÇíáí
3:ÍÊì íÚãá ÓãÇÑÊí ÈÔßá ÕÍíÍ ÝÃäÊ ÈÍÇÌÉ áÅäÔÇÁ 4 ãÌáÏÇÊ Öãä ãÌáÏ ÓãÇÑÊí ÇáÐí ÇäÔÃÊå ÓÇÈÞÇð , ÃáÇ æåíßæÏ:/yourSiteFolder/smarty/ Config_File.class.php debug.tpl internals/ plugins/ Smarty.class.php Smarty_Compiler.class.php
templates,templates_c,cache,configs ,æåí ãÎÕÕÉ – ÈÇáÊÑÊÈ- áãáÝÇÊ ÓãÇÑÊí ÇáÊÇáíÉ
templates , compiled templates ,cached templates , config
4:ÃäÔà ÏÇÎá ãÌáÏ ÊØÈíÞß ãáÝ íÏÚì index.phpæÇßÊÈ Ýíå ÇáÑãÇÒ ÇáÊÇáí:
5:ÃäÔà ãáÝ íÏÚì index.tplÝí ãÌáÏ templates Ãí ßãÇ íáí :ßæÏ:<?php // put path to Smarty.class.php require(‘./smarty/Smarty.class.php’); $smarty = new Smarty(); $smarty->template_dir = ‘./smarty/templates’; $smarty->compile_dir = ‘./smarty/templates_c’; $smarty->cache_dir = ‘./smarty/cache’; $smarty->config_dir = ‘./smarty/configs’; $smarty->assign(‘name’, ‘:I am Light Tiger, nice to meet you ‘); $smarty->display(‘index.tpl’); ?>
/yourSiteFolder/smarty/templates/index.tpl
ÍÑÑ åÐÇ ÇáãáÝ áíÍæí ÇáÑãÇÒ ÇáÊÇáí:
6:æÇÎíÑÇð ,ÇÓÊÚÑÖ ÇáÊØÈíÞ ÇáÐí ÇäÔÃÊå ÈÇÓÊÎÏÇã ãÓÊÚÑÖ ÇáæÈ ÇáãæÌæÏ Úáì ÌåÇÒßßæÏ:<html> <head> <title>Smarty</title> </head> <body> Hello, {$name}! </body> </html>
http://localhost/yourSiteFolder/index.php
æÓíÙåÑ áß ÇáäÕ ÇáÊÇáí
æÈÐáß Êßæä ÞÏ ÞãÊ ÈÅäÔÇÁ Ãæá ÊØÈíÞ áß ÈÇÓÊÎÏÇã ÓãÇÑÊí .Hello, :I am Light Tiger, nice to meet you!
áÇÍÙ ßíÝ ÊãÊ ÚãáíÉ ÇÓÊÈÏÇá ÇáãÊÍæá ÇáãæÌæÏ ÈÇáÞÇáÈ ÈÇáÞíãÉ ÇáãÓäÏÉ áå ãä ÎÇÑÌ ÇáÞÇáÈ.
ãÇ ÓÈÞ ßÇä ãÞÏãÉ ÈÓíØÉ áÊÊÇÈÚ ÊÚáã ÇáÚÏíÏ ãä ãíÒÇÊ ÓãÇÑÊí ÇáÊí ÊæÝÑ Úáíß ÇáßËíÑ ÇáßËíÑ ãä ÇáÌåÏ æÇáæÞÊ.
ãÝÇåíã ÇÓÇÓíÉ áãÊÍæáÇÊ ÓãÇÑÊí :
íÊã ÊÚÑíÝ ãÊÍæá Ýí ÓãÇÑÊí ßãÇ íáí {$smaryVariable} ÍíË íÎÖÚ ÊÚÑíÝ ÇÓã ÇáãÊÍæá áäÝÓ ÞæÇÚÏ ÊÚÑíÝ ÇáãÊÍæáÇÊ Ýí php ,æíÌÈ Ãä íÍÇØ ÈÇáÃÞæÇÓ ÇáÊÇáíÉ{}
ÃãÇ ÚãáíÉ ÅÓäÇÏ ãÊÍæá áÓãÇÑÊí ÝÊÊã ÚÈÑ ÇáÇÓÊÏÚÇÁ ÇáÊÇáí :
áÚÑÖ ÃÍÏ ÇáÞæÇáÈ(ÇáãæÌæÏÉ Öãä ãÌáÏ ÇáÞæÇáÈ ):ßæÏ:$smarty->assign(‘variableName’,’value’);
áÅÖÇÝÉ ÊÚáíÞßæÏ:$smarty->display(‘templateName.tpl’);
æÈÇáÅÖÇÝÉ Åáì ÇáßËíÑ ãä ÇáÊæÇÈÚ æÇáÅãßÇäíÇÊ ÇáÊí íÞÏãåÇ áäÇ ÓãÇÑÊí ááÊÍßã ÈÚÑÖ ÇáãÚáæãÇÊ.ßæÏ:{*this is a smarty comment that will not be displayed on the final output of the template*}
ÔÇåÏ ÇíÖÇ
ÇäÔÇÁ æ ÖÈØ ÇáÊÇÑíÎ æ ÇáÓÇÚÉ Ýì ÓãÇÑÊí Smarty Date and Time zone





ÑÏ ãÚ ÇÞÊÈÇÓ
ÇáãÝÖáÇÊ