Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou finalizando meu framework, para minha empresa, é um sistema de CMS completo. Agora entra a questão da template. Pensei em implementar o Smarty, sei que ele tem o sistema de cache. Mas mesmo assim, fico pensando que ele faz o site perder um pouco no desempenho. E eu fico analisando, dá para dividir o PHP do HTML facilmente sem o Smarty. Então ele seria uma engine desnecessária? Faria o site perder um pouco o desempenho?
Obrigado.
Olha, eu utilizo o Smarty e ele acelera em completo os meus projetos, muito mais rápido de integrar.
Como o nosso amigo Jader falou, claro que ele tranforma as suas tags em php, até por que ele é um template feito em php :D
mas para poder separar totalmente o PHP do HTML, ele é perfeito, simples mas poderoso.
Indico.
Complementando: Do ponto de vista do gremio10 concordo também, pois como ele falou, para separar o PHP do HTML é realmente muito bom. ^_^
Entendo, mas no caso ele acelera o PROJETO e não o desempenho do site certo?
Exato.
Já usei Smarty maciçamente anos atrás e nunca me incomdou a pequena, porém presente, redução de performance.
O que me fez abandoná-lo e partir pra outra, própria, foram as várias complicações do sistema de Cache dele.
Isso porque não conseguia a flexibilidade que eu queria principalmente na integração com formulários. De meus projetos, pessoais ou contratuais, alguns tinham formulários enormes e eventualmente os templates eram monstruosos (em parte por ausência de um MVC decente).
Isso em meados do lançamento da versão 3, onde vi uma luz no fim do túnel com aimplementação de um tag de nocache, onde tudo, exceto aquilo dentro dessas tags eram cacheado.
Mas o template ficava super poluído e quando os problemas de integração com minhas bibliotecas começou, devido a divergências no AutoLoad entre elas, chutei o balde de vez.
Hoje eu não uso mais. A minha View é muito mais eficiente e leve.
Mesmo se a Smarty não tivesse apresentado nenhum problema, hoje, pelo menos pra mim, ela seria apenas uma forma de manter meus templates mais "legível", já que infelizmente, sem um linguagem própria (que é o que a sintaxe da Smarty oferece) os templates acabam desse jeito, por exemplo:
<h1>Título</h1>
<h2>Subtítulo</h2>
<p>
<?php if( count( $this -> results ) > 0 ) : ?>
Exibindo resultados para <?php echo $this -> query; ?>
<?php else : ?>
Nenhum resultado encontrado para <?php echo $this -> query; ?>
<?php endif; ?>
</p>
Bem a cara de um Tema WordPress...
Quais são alternativas além do smarty? Tenho usado esse sistema de template do Rael Cunha http://raelcunha.com/template.php que aliais é bem legal. Mas gostaria de saber a opnião de vocês sobre usar essas classes prontas ou realmente criar o meu próprio sistema de template. Valeu!!
Olha, substituto ao Smarty eu não sei. Mas mês passado eu dei uma olhada no Twig, (re-)criado pelo Fabio Potencier, criador do Symfony e achei bem bacana.
Fala vitorsilva boa tarde,
Eu ja trabalhei com o smarty e com a classe do Rael aliás já tive aulas com ele na Virgos , realmente ele perde um pouco de desempenho, hoje eu trabalho com Zend e creio que seja a melhor forma de separar o MVC do Projeto alem de ser Modular e afins, no caso do nosso amigo ai que vai um CMS, creio que um framework modular seria a forma mais facil de organizar este projeto..
Bom he isso ai ..
Abraços!
também uso o smarty e percebo uma redução de performance, mas pessoalmente os ganhos de produtividade compensam. A idéia do caché para acelerar é ótima, mas funciona "loucamente" em muitos casos: às vezes mostra dados de um usuário diferente do que esta visualizando - recomendo sempre desligar o caché:
$smarty = new Smarty;
$smarty->caching = false;
Existe muita crítica negativa quanto a ele: a maioria diz que você pode obter o mesmo resultado escrevendo diretamente em php, e que portanto, ele só faz perder performance e poder. Existia até mesmo uma página advogando contra o smarty a "nosmarty.net". Mas particularmente penso que é questão de gosto. Para mim ele aumenta muito a produtividade, mas para outros pode ser que diminua: é como utilizar o vi como editor de textos: para alguns é melhor, para outros não, você precisa experimentar para decidir.
Para mim, a maior vantagem é a de ser pouco intrusivo ao código html. Com isto, posso terceirizar a codificação html a um profissional que não entenda de php e quando estiver pronta, basta colar no meu projeto, sem grandes alterações.
Quanto a alternativas, há o twig como já citaram, que parece ser bem promissor - pretendo experimentá-lo em breve. Há também o savant (http://phpsavant.com/) citado como uma das melhores alternativas de template engine pelos detratores do smarty. Particularmente achei horrível, intrusivo e poluído, mas pode ser que você goste.
Abs
19 alternativas ao smarty: http://www.webresourcesdepot.com/19-promising-php-template-engines/
Olá tesla, beleza?
Já trabalhei com o Smarty e posso afirmar que sim, ele faz o site perder um pouco de desempenho.
Se não me falha a memória o Smarty cria uns arquivos de cache, não? Você já abriu um desses arquivos? Bom, caso não tenha aberto você verá que ele simplesmente transformas as tags do Smarty para PHP e imprime os objetos. Considerando este fato e analisando de uma forma crítica podemos dizer que acaba dando na mesma.
Claro, ele tem a vantagem de separar bem as camadas, o que é html com html, o que é php com php, mas particularmente eu não usaria, mas para separar ele é bem bacana. ^_^