Inteligent

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Inteligent
software
Tip Motor șablon (nu este listat )
Dezvoltator Muntele Ohrt, Messju Mohr
Data primei versiuni 2002
Ultima versiune 3.1.39 (17 februarie 2021)
Sistem de operare Multiplatform
Limba PHP
Licență LGPL
( licență gratuită )
Site-ul web www.smarty.net/

Smarty este un motor de șabloane web scris în PHP . Smarty vă permite să separați codul PHP, logica de business (programare software), de codul HTML , logica de prezentare (aspectul grafic al unui site web ) și să generați conținut web prin înlocuirea etichetelor speciale Smarty din documentul intern (înlocuire) de variabile și multe altele).

O etichetă (marker) este o directivă, cuprinsă de caractere speciale (de obicei paranteze buclate), interpretate de motorul Smarty. Aceste directive pot fi variabile , notate cu un semn de dolar ($), funcții sau chiar declarații de control al fluxului . Smarty permite programatorilor PHP să definească ele însele funcțiile care trebuie incluse în etichetele Smarty.

Model-Vizualizare-Controler

Abstracția rafinată creată de Smarty vă permite să separați drastic interfața grafică a unei pagini web ( prezentarea ) de back-end în PHP, favorizând dezvoltarea de aplicații mult mai organizate și mai elegante. Utilizarea Smarty facilitează dezvoltatorilor PHP să implementeze modelul de dezvoltare Model-View-Controller (MVC), care are avantaje fără îndoială: este de fapt posibil să „ascundem” logica de programare a unui site de la webdesigners , în timp ce programatorii vor lucra indiferent a interfeței grafice a site-ului.

Caracteristici

Smarty permite programarea șabloanelor printr-o serie de funcții încorporate , inclusiv:

  • expresii obisnuite
  • foreach, în timp ce
  • dacă, elseif, else
  • modificatori de variabile - de exemplu {$ variable | nl2br}
  • funcții create de utilizator
  • calcul matematic în cadrul șablonului

pe lângă multe altele. Cu toate acestea, există alte motoare șablon care acceptă aceste caracteristici.

Cod simplu

Deoarece Smarty separă codul PHP de HTML, vom avea două fișiere. Primul este index.tpl :

 <! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.1 // IT" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<Html>
<Cap>
   < title > {$ title_text} </ title >
   < meta http-equiv = "content-type" content = "text / html; charset = iso-8859-1" />
</ head >

< body > {* Acesta este un mic comentariu care NU va fi vizibil în sursa HTML *}

< p > {$ body_text} </ p >

</ body > <! - Acesta este un mic comentariu care va fi vizibil în sursa HTML ->
</ Html>

În codul logicii de afaceri (de exemplu, index.php ) este posibilă interfața cu Smarty pentru a utiliza șablonul de mai sus:

 define ( 'SMARTY_DIR' , 'smarty-2.6.9 /' );
require_once ( SMARTY_DIR . 'Smarty.class.php' );

$ smarty = nou Smarty ();
$ smarty -> template_dir = './templates/' ;
$ smarty -> compile_dir = './templates/compile/' ;
$ smarty -> cache_dir = './templates/cache/' ;
$ smarty -> cache = false ;
$ smarty -> error_reporting = E_ALL ; // LASĂ E_ALL ÎN TIMPUL DEZVOLTĂRII

$ smarty -> assign ( 'title_text' , 'TITLE: Un exemplu simplu de utilizare a Smarty ...' );
$ smarty -> assign ( 'body_text' , 'BODY: Acesta este mesajul setat cu assign ()' );

$ smarty -> display ( 'index.tpl' );

Versiunea 3.0

Versiunea 3.0 a Smarty a fost rescrisă pentru PHP 5 folosind funcțiile oferite de această versiune și care nu erau prezente în PHP 4. Prin urmare, Smarty 3 nu funcționează cu versiunile anterioare de PHP. Principalele caracteristici introduse sunt:

  • Eridateria șabloanelor;
  • Auto-Escapement {} pentru JavaScript sau orice fișier interpretat de smarty ( CSS , JS etc.);
  • Definiția funcțiilor în șabloane.

Ca exemplu al acestei ultime caracteristici, vedem acest fragment de cod:

 {* definiți funcția *}
{nume funcție = nivel meniu = 0}
  < ul class = "level {$ level}" >
  {foreach $ data as $ entry}
    {if is_array ($ entry)}
      < li > {$ entry @ key} </ li >
      {date din meniu = $ entry level = $ level + 1}
    {else}
      < li > {$ entry} </ li >
    {/ dacă}
  {/ pentru fiecare}
  </ ul >
{/ funcție}

{* creați o matrice pentru a demonstra *}
{$ menu = ['item1', 'item2', 'item3' => ['item3-1', 'item3-2', 'item3-3' =>
['item3-3-1', 'item3-3-2']], 'item4']}

{* rulați matricea prin funcția *}
{meniu date = $ meniu}

Rezultatul rezultat este după cum urmează:

 * elementul 1
* item2
* elementul 3
      sau elementul 3-1
      sau elementul 3-2
      sau elementul 3-3
            + item3-3-1
            + item3-3-2
* elementul 4

Elemente conexe

Alte proiecte

linkuri externe