Files
smarty/docs/it/preface.xml

95 lines
5.0 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<preface id="preface">
<title>Prefazione</title>
<para>
Indubbiamente <20> una delle domande pi<70> frequenti sulle mailing list del
PHP: perch<63> devo rendere i miei script PHP indipendenti dal layout? Se
<20> vero che PHP <20> conosciuto come "linguaggio di scripting incorporato in
HTML", dopo aver realizzato un paio di progetti che mescolano liberamente
PHP e HTML nasce l'idea che separare forma e contenuti sia una buona cosa.
Inoltre, in molte aziende i ruoli dei grafici (progettisti del layout)
e dei programmatori sono separati. La ricerca di una soluzione con i
template <20> quindi una conseguenza naturale.
</para>
<para>
Ad esempio, nella nostra azienda lo sviluppo di un applicazione procede
cos<6F>: dopo che sono stati redatti i documenti con le specifiche richieste,
i progettisti delle interfacce creano dei modelli di interfaccia e li danno
ai programmatori. Questi implementano la logica di business in PHP e usano
i modelli di interfaccia per creare scheletri di template. A questo punto
il progetto passa al progettista HTML/creatore di layout per le pagine web,
che porta i template al loro massimo splendore. Il progetto potrebbe ancora
andare avanti e indietro un paio di volte fra programmazione e HTML. Quindi
<20> importante avere un buon supporto per i template, perch<63> i programmatori
non vogliono avere a che fare con l'HTML e non vogliono che i progettisti
HTML facciano danni col codice PHP. I grafici hanno bisogno di supporto per
i file di configurazione, i blocchi dinamici e altri elementi di interfaccia,
ma non vogliono dover avere a che fare con le complicazioni del linguaggio
di programmazione.
</para>
<para>
Dando un'occhiata alle diverse soluzioni di template attualmente disponibili
per PHP, vediamo che la maggior parte di esse fornisce solo un modo rudimentale
per sostituire variabili nei template e hanno delle forme limitate di
funzionalit<69> relative ai blocchi dinamici. Ma le nostre necessit<69> erano un
po' maggiori di queste. Noi volevamo che i programmatori evitassero DEL TUTTO
di avere a che fare con l'HTML, ma questo era quasi inevitabile. Ad esempio,
se un grafico voleva alternare i colori di sfondo su un blocco dinamico, questo
doveva essere ottenuto preventivamente dal programmatore. Volevamo anche
che i grafici potessero usare i propri file di configurazione, ed importare
da questi le variabili nei template. La lista potrebbe continuare ancora.
</para>
<para>
Iniziammo cos<6F> a scrivere una specifica per un motore di template verso la fine
del 1999. Dopo avere finito le specifiche, iniziammo a lavorare su un motore
scritto in C che, speravamo, avrebbe potuto essere incluso in PHP. Non solo
per<65> ci scontrammo con molti complicati ostacoli tecnici, ma c'era anche un
dibattito molto acceso su cosa esattamente un motore di template avrebbe dovuto
fare e cosa no. Da questa esperienza decidemmo che il motore sarebbe stato scritto
in PHP come classe, in modo che ognuno potesse usarlo come gli pareva. Cos<6F>
scrivemmo un motore che faceva proprio quello e <productname>SmartTemplate</productname>
venne alla luce (nota: questa classe non <20> mai stata pubblicata). Era una classe
che faceva quasi tutto quello che volevamo: sostituzione delle variabili,
supporto per l'inclusione di altri template, integrazione con i file di
configurazione, incorporazione del codice PHP, limitate funzionalit<69> con
istruzioni 'if' e molti altri robusti blocchi dinamici che potevano essere
nidificati ripetutamente. Tutto questo veniva fatto con le espressioni regolari
e il codice che ne venne fuori era, per cos<6F> dire, impenetrabile. Era anche
notevolmente lento nelle grosse applicazioni, per via di tutta l'analisi (parsing)
ed il lavoro sulle espressioni regolari che doveva fare ad ogni invocazione.
Il problema pi<70> grosso dal punto di vista di un programmatore era tutto il
lavoro necessario nello script PHP per creare ed elaborare i template ed i
blocchi dinamici. Come rendere tutto questo pi<70> semplice?
</para>
<para>
Cos<6F> nacque la visione di quello che poi <20> diventato Smarty. Sappiamo quanto
<20> veloce PHP senza il sovraccarico dell'analisi dei template. Sappiamo anche
quanto il linguaggio possa apparire meticoloso ed estremamente noioso per il
grafico medio, e questo pu<70> essere mascherato con una sintassi di template
molto pi<70> semplice. Allora, perch<63> non combinare i due punti di forza? Cos<6F>
nacque Smarty...
</para>
</preface>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->