2012-04-20 21 views
9

Ho usato smarty in passato, in x-cart, nel componente di jobberbase e jomestate di Joomla e anche in altri componenti di Joomla. Ho visto che le cose erano molto strettamente legate al x-cart e molte cose sembrano essere più complicate di quanto dovrebbero essere in base al jobberbase e ho avuto l'impressione che ciò fosse dovuto alla smarty.Devo usare smarty template engine con MVC come Yii?

Ora ho intenzione di utilizzare Yii in un progetto, suggerito dal cliente. E lo stesso Yii è un framework MVC. Quindi dovrei usare smarty con esso? Voglio sapere che dovrei usare smarty per questo, voglio dire ci saranno alcuni vantaggi nell'usare smarty in Yii? O no? O sarà solo un overhead o ci saranno alcuni svantaggi di usare smarty in esso? Ho comprensione di smarty. Ma penso che a volte ciò rende le cose più complesse. Quindi voglio sapere da voi ragazzi, questo è solo un pensiero dominante a causa di cattive strutture o c'è qualche realtà in questo, quindi dovrei usare smarty o c'è qualcos'altro di meglio?

risposta

11

Come qualcuno che usava smarty prima di Yii direi che non ha senso.

Smarty è stato eccezionale perché impediva di mixare la logica e visualizzare in un unico file. L'architettura MVC definisce che i controller (contenenti la logica) e la vista dovrebbero essere separati in ogni caso. Ti consiglio di scrivere le tue visualizzazioni come faresti con i modelli smarty, ma usa solo la sintassi php. Se stai usando un buon IDE (come netbeans), verrà automaticamente indentato il tuo codice (see code formatting in netbeans).

hanno anche uno sguardo al Alternative syntax for control structures

eventuale parere di Yii creatore

Yii stessa deriva dal Prado che è Qiang Xue progetto precedente. Il Prado ha una lingua allettante e Yii (out of the box) non credo che questo significhi che Qiang crede che una lingua di template non sia necessaria.

modelli Smarty Overhead

Smarty sono rispettate a PHP una volta a cambio (se la cache è abilitata), questo significa che la maggior parte delle spese generali accade solo per la prima richiesta, ma mi piacerebbe assumere c'è ancora un po 'di overhead nella funzione extra chiama per verificare che la vista compilata esista e questo influirebbe su ogni richiesta. Quindi c'è un sovraccarico di smarty, ma probabilmente è trascurabile.

+0

Capisco la sintassi alternativa ma voglio solo sapere qual è il vantaggio di smarty quando si utilizza già l'architettura MVC? o ci sarà un sovraccarico? – Hafiz

+0

Dipende interamente da ciò che considereresti il ​​vantaggio di smarty? –

+0

Non c'è differenza tra l'uso di smarty in un'applicazione su misura e il suo utilizzo in un framework. Mischiare viste e logica è sempre una cattiva pratica IMO. Ma se sei severo con te stesso e con altri sviluppatori non hai bisogno di smarty per applicarlo allo –

1

Smarty non sarebbe overhead se compilato per php.

avrei uso solo di Smarty quando c'è ruoli separati di sviluppatore e designer (che vuole usare Smarty)

A parte questo il suo solo un altro linguaggio per imparare.

2

Smarty è, come qualsiasi linguaggio modello, un overhead costoso.

Come ha detto Rasmus Lerdorf, PHP è già un motore di template. C'è qualche ragione per aggiungere un'altra lingua con altre strutture di controllo, che hai già in PHP?

I motori di modelli sono utili solo perché incorporano la logica della cache. Se non sei in grado di costruire autonomamente una logica cache, allora impara.

+1

Non è necessario utilizzare un motore di template per avere la logica cache in yii, c'è una build in cache che è possibile attivare – darkheir