Aprenda a fazer
Olá caros leitores,
Hoje abordarei como construir aplicações em php, utilizandoa idéia de classes e objetos.
Não vou, entretanto, abordar aspectos teóricos sobre classes e objetos nesse tutorial. Meu objetivo, neste primeiro tutorial da série, é mostrar os primeiros passos para construção de layouts utilizando orientação à objeto.
Então, mãos à obra! Nosso “desenho final” será um layout de três colunas, com menu de navegação, header e rodapé, como mostra a figura a seguir :
- Layout que será construído
Iremos desenvolver, portanto, 7 classes : “layout”, “header”, “menu_nav”, “barra_esq”, “corpo”, “barra_dir”, “rodape”. Percebam que a classe “layout” será utilizada para “unir” todas as outras. Hoje, começaremos a desenvolver o código da classe layout.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?php //Criado por : Raphael Monroe Marcondes // BLOG : www.raphaelmonroe.com class layout { //construtor da classe... function __construct() { //Chama a função de inclusão de classes necessárias... $this->inclui_classes(); //Chama a função de inicialização de variáveis... $this->inicializa_variaveis(); } //Função pra incluir todas as classes que precisaremos para o desenvolvimento //do layout... function inclui_classes() { include_once("head.class.php"); include_once("menu_nav.class.php"); include_once("barra_esq.class.php"); include_once("corpo.class.php"); include_once("barra_dir.class.php"); include_once("rodape.class.php"); } //Função responsável por criar objetos(instâncias) daquelas classes adicionais. //A partir de uma linha "$var = new objeto();", você cria um objeto que será //representado por $var. function inicializa_variaveis() { $this->head = new head(); $this->menu_nav = new menu_nav(); $this->barra_esq = new barra_esq(); $this->corpo = new corpo(); $this->barra_dir = new barra_dir(); $this->rodape = new rodape(); } } ?> |
Salve o código acima como “layout.class.php” utilizando o seu editor favorito.
O arquivo fonte pode ser baixado aqui.
Lembrando que se você rodar o código, nada acontecerá ainda. Estamos iniciando nossos trabalhos!
Aguardem os próximos posts!
Abraço.

22/05/2008 em 
23 de maio de 2009 às 11:37
Oi Raphael, tudo bem?
Muito legal as dicas cara! Só não entendi as partes que você usou o ” $this->”..
Poderia explicar um pouco mais?
Valeu!
25 de maio de 2009 às 14:32
Fala Roberto blz?
Seguinte cara. Usamos o “$this->” para se referir a uma “variável global da classe”, isto é, a partir do código “$this->var = new var();”, estamos criando uma variável $var, que será “vista” por toda a classe. Assim, se em alguma função eu precisar de $var, posso chamar $this->var e ter acesso à ela, sem a necessidade de mandá-la como parâmetro à função.
Qualquer dúvida, comente de novo sem problemas!
Obrigado. []`s
1 de junho de 2009 às 20:45
[...] Requisitos: Artigo “Tutorial PHP5 – Construção de Layout“. [...]
19 de outubro de 2009 às 22:13
Eu estava deseperado, pois precisava fazer um layout exatamente igual ao seu “desenho final” acima. Caiu como uma luva!
Acontece que não entendo nada de CSS! Vou ler a parte 2, talvez vc me dê também a outra luva! rsrsrsrsr. Valeu!
8 de novembro de 2009 às 12:42
Rafael
Nunca achei na internet nada sobre php tão bem explicado, até mesmo pessoas leigas no assunto conseguem entender tudinho.Além de saber os códigos você tem o dom de saber transmitir.Serei frequentadora assídua deste blog.Continue por favor com o tutorial de php .Obrigada.
Ale.
4 de fevereiro de 2010 às 14:02
Rapaz, eu até entendo sua boa vontade, mas na boa, recomendo ler algumas coisinhas sobre PHP antes de sair publicando artigos desse nível.
Recomendo também, dar uma lida sobre Orientação a Objetos, pois ficou claro na sua pseudo-classe que faltou domínio no assunto.
E outra: public, private e protected cai bem
Para seu “incluir_classes” eu posso te recomendar duas coisas:
1. Autoload – http://br.php.net/autoload
2. Namespaces – http://br.php.net/namespace
Bons estudos !
Abraço !
4 de fevereiro de 2010 às 14:13
Raphael,
A ideia da classe realmente é boa, porem voce cometeu algumas falhas no código no que diz respeito a versões novas do PHP.
1. Escopo dentro da classe, métodos e propriedades devem ser publicos, privados, etc..
2. Ao inved de require e include, usar um Autoloader é mais recomendado
3. Não é regra, mas existe hoje um padrão de nomenclatura de classes usando camelCase, ou seja, a classe seria Layout e MenuNav e similares e os arquivos teriam estes mesmos nomes, ou melhor ainda teriam um escopo de namespace (antes do 5.3, depois da pra usar namespace mesmo):
Design_Layout, Design_MenuNav …
com isso voce poderia usar autoloaders padroes como o do ZF e diversos outros Frameworks, e todas classes estariam numa pasta Design.
Design/Layout.php, Design/MenuNav.php …
Enfim, algumas dicas para vc melhorar o código, entre em contato se quiser discutir esses conceitos.
Abraço
4 de fevereiro de 2010 às 14:46
@Rafael Dohms e @hlegius :
Obrigado pelos comentários e por terem visitado o Blog.
Reconheço que as dicas que vocês passaram são válidas e devem ser utilizadas por todos que desejam criar layouts utilizando php.
Mas, como todos os artigos aqui no meu blog, pode-se perceber que nunca utilizei frases como: “Isso é o certo” ou “Isso sempre deve ser feito” ou até mesmo “Sou certificado na área, manjo tudo e minhas idéias devem sempre ser seguidas”. Pois bem, como vocês mesmo disseram, essa forma por mim apresentada não foi uma das melhores. E o objetivo era realmente esse. Iniciar um assunto e aprender com os visitantes. Esse é o maior objetivo do meu blog : Aprender.
Na época desse artigo, estava iniciando meus estudos e queria compartilhar o andamento com o pessoal que visita o blog. Portanto, se, no caso, eu ainda estivesse estudando isso, seus comentários seriam de ótima ajudam (e realmente continuam sendo para os leitores) e teriam muito a acrescentar ao meu desenvolvimento. Entretanto, hoje trabalho na área de aplicações corporativas, utilizando Wicket, JPA, Spring e muitos outros frameworks Java.
Portanto, estou sempre aberto a sugestões e críticas. Por isso, peço que continuem comentando e ajudando os estudantes e amantes da programação.
Mais uma vez obrigado pelas dicas!
Um abraço!
4 de fevereiro de 2010 às 14:54
@Raphael
Que bom, deixei o comentário mesmo por querer lhe indicar novas areas de estudo e evolução. Minha filosofia é de que é importante publicar um blog mesmo que ache o que fez “incompleto” ou ate incorreto, pois isto vai gerar discussões como esta e voce vai acabar no final aprendendo algo novo.
“Um bom desenvolvedor deve sabe expressar suas opiniões publicamente e defender sua posição, ou admitir seu erro” (Cal Evans)
Abraço e boa sorte ai no futuro
4 de fevereiro de 2010 às 15:01
Legal que não tenha levado pro lado ofensivo !
Vale lembrar que o ponto que eu queria chegar era: conduzir os iniciantes da linguagem ao erro. Essas “meias-verdades” costumam confundir e muito quem está tentando ler sobre tal assunto.
Precisar de alguma coisa, pode dar um grito aí !
Abraço !