dokkalfr 0 Denunciar post Postado Janeiro 27, 2005 Bueno gurizada, vou tentar ser breve. Como vários programadores, quando eu tava começando a usar PHP conheci um lancezinho chamado FastTemplate e fiquei facinado (na verdade acho que minha primeira classe com um ar mais profissional foi um sistema de template a la FastTemplate). Pra quem não conhece, FastTemplate é uma técnica usada para template onde podemos fazer coisas mais ou menos assim; temos um arquivo com código HTML e as tags que o sistema vai reconhecer (digamos index.tpl) <html><body>Olá {$USUARIO}</body></html> Depois temos o PHP que vai substituir as tags {$VAR} por algum valor (digamos index.php) PHP [/tr][tr]$Template = new FastTemplate;$Template->assign ('USUARIO', 'dokkalfr'); print $Template->parse ('index.tpl');[/tr] Minha primeira impressão ao ver isso foi: "Nossa, eu posso separar a lógica do design!!". É verdade, mas não consigo nada que eu já não tivesse com puro PHP. FastTemplate é reinventar a roda, e isso é um saco!! Qual a diferença do código acima para esse: index.tpl.php PHP [/tr][tr]<html><body> Olá <?=$usuario?> </body> </html>[/tr] index.php PHP [/tr][tr]$usuario = 'dokkalfr';include ('index.tpl.php');[/tr] O Smarty é só um FastTemplate com muitos recursos, mas ainda não vejo nenhuma razão pra usá-lo ao invés da sintaxe nativa do PHP para template. Com o passar do tempo todo usuário de um sistema mais rudimentar de FastTemplate vai se sentir com pouco controle sobre o template, então o Smarty traz tags que ajudam a retomar este controle como a tag {if} e traz alguns operadores como 'eq'. Bom, mas se bem me lembro a idéia que me atraiu pra cá foi separar lógica de design, loops e operadores de comparação tem um cheiro muito parecido com lógica, e além de não trazerem a separação anunciada, não traz nenhuma vantagem sobre PHP puro. COM SMARTY Caso haja o nome do usuário na session ele imprime o nome, senão imprime "Visitante anônimo" index.tpl {* Smarty *}<html><body>{$usuario|default:"Visitante anônimo"}</body></html> index.php PHP [/tr][tr]include('Smarty.class.php');$s = new Smarty; $s->assign ('usuario',$_SESSION['username']);[/tr] SEM SMARTY index.php PHP [/tr][tr]<?function default ($valor, $default) { return isset($valor) ? $valor : $default; } $usuario = default ($_SESSION['username'], 'Visitante anônimo'); // caso não gostem de ter o HTML na mesma página, podia ser feito // include ('index.tpl.php'); ?> <html> <body> Olá <?=$usuario?> </body> </html> [/tr]Na minha opinião seria muito mais interessante uma bibliotecas de funções de "formatação de saída" do que esse circo que o Smarty faz!! Outra coisa seria utilizar XML e XSLT ou um sistema de template com "code behind" como do ASP.Net e JSP (via JavaServerFaces) que é simulado pela WACT (uma framework MVC escrita em PHP4) ou ainda algumas outras que utilizam parametros XML com diferentes namespaces como o patTemplate. Mas vejo pouco esforço da comunidade PHP em abrir mão dos inúteis FastTemplates em prol de uma ferramenta realmente eficiente. De minha parte, venho tentando criar uma ferramenta interessante de template mas com o pouco tempo que tenho disponível está bem devagar. Alguém conhece algum projeto interessante que fuja do FastTemplate ou tem algum motivo especial para adotar ferramentas como o Smarty ou similares?! Compartilhar este post Link para o post Compartilhar em outros sites
SnakeX 1 Denunciar post Postado Janeiro 27, 2005 cara eu quando uso é para depois quando quiser alterar o design do site fica muito mais fácil porque assim não mexo em nada do php.É por isso que existe ( mas deve de haver mts outras razões para se usar tb :P ) Compartilhar este post Link para o post Compartilhar em outros sites
dokkalfr 0 Denunciar post Postado Janeiro 28, 2005 Mas é o que eu falei, tem como tu conseguir o mesmo resultado sem o smarty. Qual a diferença entre {* Smarty *}{if $nivel eq 10}voce tem acesso a página{else}Desculpe, mas você não tem acesso a pagina{/if}e PHP [/tr][tr]<? if ($nivel == 10): ?>voce tem acesso a página <? else: ?> Desculpe, mas você não tem acesso a pagina <? endif; ?>[/tr] Compartilhar este post Link para o post Compartilhar em outros sites
fast 0 Denunciar post Postado Janeiro 28, 2005 bom.. eu nem conhecia esses sistemas.. já tinha ouvido falar.. mas não tinha parado pra ver o q era..mas pelos exemplos q você deu.. sobre o smarty.. eh realmente reinventar a roda... sinceramente eu não vejo nenhuma utilidade! Compartilhar este post Link para o post Compartilhar em outros sites
SnakeX 1 Denunciar post Postado Janeiro 28, 2005 para mim isso so tem utilidade quando vou usar varios designs no mesmo site, porque de resto n vejo maior utilidade para mim. Compartilhar este post Link para o post Compartilhar em outros sites
dokkalfr 0 Denunciar post Postado Janeiro 29, 2005 Ok, mas isso é possível com PHP puro! Tem alguma funcionalidade do Smarty que tu utilize que facilita tua vida e é muito complicado ou impossível com PHP puro? Eu próprio já to me achando um chato com essa estória, mas se verem a seção de HTML de sites como o http://www.phpclasses.org vão notar que existem muitas classes para FastTemplate, o site do Smarty é um subdomínio do php.net. Mas até onde eu vejo, esse sistema não traz nenhuma vantagem para o usuário, mesmo assim ele é quase que empurrado "guela a baixo"!! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 29, 2005 dokkalfr,templates servem para quem não sabe desenvolver, criar, programar...saca? Compartilhar este post Link para o post Compartilhar em outros sites
dokkalfr 0 Denunciar post Postado Janeiro 30, 2005 Eu sei qual a utilidade dos templates, meu questionamento é sobre FastTemplate ... pouca gente (pelo menos se contarmos os frequentadores de fóruns nacionais) usa templates, os que usam, usam FastTemplates (eg Smarty). Mas está muito claro que esse tipo de template não traz nenhuma vantagem!Se eu tenho um site onde preciso mexer constantemente no design mas não quero mexer com o PHP, pq não usar XML e XSLT? Se preciso de uma maior separação de código e design, pq não uso um sistema de "code-behind" e tenho uma completa separação.Pelas respostas que eu vi, as pessoas usam FastTemplate pq não conhecem outras maneiras de obter estes resultados (nem mesmo a sintaxe nativa do PHP para este propósito). Exatamente porque templates são para quem não sabe programar é que {if $user eq "Admin"} não deveria ser uma tag aceitável!!Mas, como eu disse no post anterior, eu próprio estou me achando chato, a idéia seria discutir formas alternativas de template ou as vantagens do FastTemplate (principalmente Smarty), mas acabamos andando em circulos!! Compartilhar este post Link para o post Compartilhar em outros sites
Matanzo 0 Denunciar post Postado Julho 3, 2005 Ué ..Cada um faz uma analise do q realmente será melhor pra ele .. eu usaria o smarty pq nao sou criativo o suficiente pra substituir por tags nativas ...Cada um decidi .. Compartilhar este post Link para o post Compartilhar em outros sites
sadboar 0 Denunciar post Postado Agosto 26, 2005 Pessoal eu to começando a pesquisar sobre templates agora, to bolando um sistema de blog prum protal q eu faço e até baixei o smarty mas nem instalei, sinceramente eu achei mta complicação pra pouco resultado. Resolvi separar minhas funções de php criando functions mesmo e aplica-las no layout com defines, ficou +/- assim: PHP [*]<? [*] [*]//funções [*]function mensagens() [*]{echo "Função Mensagens do Blog";} [*] [*]//definições [*]define("MSG_BLOG",mensagens()); [*] [*] [*]//include que terá DEFINICAO [*]echo MSG_BLOG; [*] [*]?> Eu sei que parece que eu compliquei mais, mas meu objetivo é permitir que os usuários possam alterar o template, e não quero q eles vejam em variavel, talvez seja frescura, mas eu prefiro q eles vejam: <?= MSG_BLOG;?> do que: <?= $mensagem;?> ou até: <?= mensagens();?> Acho que como é um blog eu nao vou precisar de mais funções de template do q essa, nao pretendo mostrar bem vindo usuario ou visitante nem nada assim... Eu ainda não comecei a programar efetivamente o sisteminha, to só reunindo informações de tudo q eu vou precisar e como vou fazer, ja ta tudo na minha cachola hehe... se alguém tiver alguma dica pra mim por favor me mande email: carlos@aafdz.com []´s Compartilhar este post Link para o post Compartilhar em outros sites
Illidan 0 Denunciar post Postado Agosto 26, 2005 Acho os templates uma coisa fantástica, e discordo que eles são pra quem não sabe programar... quando você tem um site grande na mão, com no mínimo 100, 200 páginas, o template serve pra que você possa alterar o conteúdo padrão exibido em todas as páginas de uma só vez... se você não usar um esquema de templates e seu chefe pedir pra você abrir um espaço no topo das páginas pra um banner, você vai ter que alterar cada um desses arquivos na unha... sendo que, se você estiver usando um template, você altera só um arquivo. Compartilhar este post Link para o post Compartilhar em outros sites