|
||
|
|
Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Bloghost
» Início » Programação » PHP » Sistema de templates em PHP
--> |
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 11/06/2007Sistema de templates em PHP
Daniel Krug Daniel Krug é estudante de Ciências da computação na UNISINOS e atua como programador PHP há 4 anos em Porto Alegre.
Criando um sistema de templates Fala pessoal! Estou escrevendo meu primeiro artigo aqui no Plugmasters e gostaria de começar com um sistema de templates. Bom, vamos lá, espero que apreciem. Primeiramente vou falar da utilidade de um sistema de templates. Imagine que você tenha um site e neste faça modificações com certa freqüência (para eventos, épocas do ano, datas comemorativas, por exemplo). Um sistema de templates tornará sua vida muito mais simples, uma vez que as alterações serão apenas no arquivo do template, deixando o resto do sistema intacto. Um exemplo disso é o próprio site do Google, que tem modificações em datas especiais, como natal, ano novo, dia das crianças e outras mais. Outros exemplos são sites do terra e ig, que geralmente “mutam” uma vez por ano. Assim, o site terá no mínimo duas camadas: Uma camada da Interface com Usuário (template) e o Modelo de Negócio (programação). Geralmente temos também o Acesso aos dados, mas disso falaremos em outra ocasião. Isto é um dos princípios da programação em camadas, o que é uma boa leitura para todos que ainda não conhecem. Para continuar vou pegar um template de exemplo. Eu baixei o Happy_Blog na seção Layouts Prontos aqui do Plugmasters Aqui o temos:
Temos então três colunas: Lateral esquerda: Área do menu. Neste exemplo temos o seguinte HTML Vamos salvar uma cópia deste arquivo e separá-lo em partes. Primeiro a área do menu. Apague seu conteúdo e coloque o marcador %MENU% (alguns chamam esta técnica de variáveis em HTML). Fica assim:
Reparem que já cortei a área de conteúdo e de banners e coloquei seus respectivos marcadores. Como vocês podem ver, o HTML ficou muito simples.
Pegue as partes cortadas e salve em arquivos distintos: inc_banners.php, inc_snippet_index.php e inc_menu.php. inc_banners.php: inc_snippet_index.php: inc_menu.php:
Este conceito de arquivos auxiliares (snippets) é bastante interessante, pois cada arquivo é responsável apenas para aquilo que ele foi desenhado. Vamos criar o arquivo index.php, este é o arquivo que gerenciará todas estas informações do site:
Nas primeiras linhas já fizemos a inclusão do template. Poderíamos também fazer esta inclusão com o template dentro de um banco de dados, o que é de igual simplicidade. Depois incluímos os arquivos auxiliares que criamos e o snippet. Na linha 8 temos o condicional, onde, se existir um snippet ele é incluído, caso contrário, será incluído o snippet da página inicial. Um exemplo seria colocar no menu (ou qualquer outro lugar) um link como: Com isto a linha 14 do index.php seria executada, fazendo o include assim: <?php include ("includes/inc_snippet_fale_conosco.php"); ?> Bom, terminho por aqui este artigo, lembrando que este é um exemplo bastante simples, mas com algum empenho você poderá criar sistemas bem mais complexos tendo como vantagem a manutenção facilitada. Baixe aqui o exemplo que criamos hoje: Espero ter colaborado e também continuar escrevendo aqui. Aguardo sugestões para próximos artigos. Um abraço e até mais! Daniel Krug Arquivos anexos ao artigo
Cristiano <cristiano.n@gmail.com>
Achei legal o artigo, facilita a vida de webmasters.
![]() ![]() ![]() ![]() ![]() Sohvarh
Péssimo artigo! Péssimo jeito de programar! Péssima forma de se trabalhar com templates!
![]() ![]() ![]() ![]() ![]() JeanmDias
Bem, discordo do amigo ae de cima, o sistema de templates é muito bom, tem uma utilidade espetacular. Não entendi porque achou ruim? Argumente melhor seu comentário.
Daniel, parabéns pelo artigo. ![]() ![]() ![]() ![]() ![]() Rafael S.
Também achei bom, com algunas resalvas, mas bom no geral.
![]() ![]() ![]() ![]() ![]() Roberto <robertoamgs@yahoo.com.br>
Muito bom. Forma simples de facilitar a vida do desenvolvedor web tornando o layout e regras mais independentes uma de outra.
![]() ![]() ![]() ![]() ![]() Rafael Greg <rafaelgreg@yahoo.com.br>
Legal!!! Mão na roda.
![]() ![]() ![]() ![]() ![]() fernando <by_fernando_web@hotmail.com>
po cara me vc que entende do asunto me faça um modelo legal pra min eu faço site de download mais o mecho com HTML ve ai meu site http://www.turbodownloads.baixa.la/
![]() ![]() ![]() ![]() ![]() Basto <b.basto@gmail.com>
gostei.. mas num tem como fazer isso utilizando orientação a objetos nao??
ouvo dizer q eh melhor ![]() ![]() ![]() ![]() ![]() Daniel Krug
Basto.
Na verdade isto já deixa preparado para orientação a objetos. Dê uma olhada em Arquitetura MVC. : Não avaliado Na verdade essa é uam maneira ruim de se trabalhar, você esta criando uma variavel STRING e colocando o conteudo dentro dela, o melhor seria trabalhar com um sistema de template, ou então no teu caso você poderia deixar o arquivo(para fins didaticos) em um HTML e através da função file_get_contents
porque ai você não precisaria colocar o "template" em uma variavel e sim em um arquivo realmente, que você transformaria numa variavel para poder substituir as variaveis antes de manda-las para a tela. ![]() ![]() ![]() ![]() ![]() Daniel Krug
Zé!
Na verdade isto está servindo só de exemplo. A partir daí você pode buscar outras soluções, como vc mesmo falou do file_get_contents ou ainda buscar do banco de dados. Aí vai da criatividade e do "gosto" de cada um. Um abraço! : Não avaliado Fabio <nowakis@gmail.com>
Concordo com Sohvarh, não é legal progromar assim. Aliás, um retorcesso. Pode servir de exemplo, mas é a para o básico da básico, inicio dos inicios. Template de verdade é Smarty smarty.php.net
![]() ![]() ![]() ![]() ![]() Daniel Krug
Fabio, como você disse e eu citei no artigo, este é um exemplo bastante simples. Agora, quando a usar smarty ou não vai da escolha, necessidade e CRIATIVIDADE de cada um.
Por isso que não surge um google no Brasil. Abraço! : Não avaliado Junior O. <crisleet@yahoo.com.br>
Otimo!!!
Muito Bom !!! Pra mim que estou começando no mundo da programação na linguagem PHP ajudou muito!!! espero que nao fique só nesse artigo!! parabens t=! ![]() ![]() ![]() ![]() ![]() ninoide <ninoide@ig.com.br>
achei interessante, nao teria outros exemplos? valeu!
![]() ![]() ![]() ![]() ![]() Luiz Rafael Passari
O tutorial está muito bom mas acho esta técnica ultrapassada, uma vez que já temos classes como o Smarty que faz todo esse serviço para nós.
![]() ![]() ![]() ![]() ![]() Rafael
Ao trabalhar com templates, o principal ganho deve ser de separar o html do php. Não vi em nenhum momento vc separando o layout do php. Muito pelo contrário, colocou o html DENTRO do php. Nenhum designer vai querer trabalhar assim....
Sem contar que a manutenção fica mais trabalhosa sim, uma vez que precisamos escrever o html na mão, não podendo usar ferramentas visuais para o auxilio. Verifique como o Smarty funciona para entender. Sem contar outros modelos realmente MVC. Abraços ![]() ![]() ![]() ![]() ![]() Beto Eytcha <betoeytcha@hotmail.com>
Estou começando agora, este tutorial deu uma grande mão para o meu aprendizado.
![]() ![]() ![]() ![]() ![]() lstm <lstm@unitmu.net>
isso é tosquera mano¬¬
![]() ![]() ![]() ![]() ![]() thaua <thaua@darkteamdev.com>
Ah cara, eu nao gosto de usar assim não, prefiro outros métodos, tem o smarty tambem...
's ![]() ![]() ![]() ![]() ![]() Dorfo
Mesmo para os inisciantes, são necessários exemplos de boas práticas de programação. Não é apenas questão de gosto, como citado.
![]() ![]() ![]() ![]() ![]() Matioli
Cara, vou ser obrigado a concordar com o pessoal. A sua idéia inicial foi muito boa, separar o código do conteúdo, porém a forma como aplicou não foi muito legal. Você mesmo disse esse é um modelo simples, mas acho que deveria ter implementado pelo menos a leitura (com o file_get_contents) de um arquivo ao invés de colocar em variáveis, assim já deixa os novatos mais engatilhados numa programação melhor, e facilita bem mais OO e trabalho em camadas...
Desculpa a critica, abços ![]() ![]() ![]() ![]() ![]() Éverton de Oliveira Paiva <evertonpaiva@gmail.com>
Excelente artigo, simples, objetivo, e uma opção pra que não quer usar um motor de templates muito complexo. Acredito que vou usar a idéia.
![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|