Trabalhando em camadas no PHP
Aqui na oficina da net e por toda web, temos vários artigos ensinando a utilizar a orientação a objeto no PHP. Porém uma coisa interessante que vem acompanhado com esta capacidade que o php5+ oferece ...
Publicado em: 17 de junho de 2009 | Leituras: 3.084 |
Canal: PHP |
Autor: Cristiano Gomes
Aqui na oficina da net e por toda web, temos vários artigos ensinando a utilizar a orientação a objeto no PHP. Porém uma coisa interessante que vem acompanhado com esta capacidade que o php5+ oferece a nós, seus escravos, é a possibilidade de dividirmos o ambiente de produção em camadas, deixando o ambiente de programação mais claro, limpo e fácil de debugar e alterar.
Após perder algum tempo estudando o funcionamento do framework da Zend, eu cheguei a conclusão de que eles são muito além do que eu quero, a única coisa que eu estava interessado era em algumas bibliotecas apenas como o autoloader por exemplo. E não estava de forma alguma querendo trabalhar à maneira deste framework que aliás é magnífico, porém oferece aos iniciantes uma dificuldade enorme.
Uma maneira interessante de ter alguma padronização em seu trabalho é dividir em camadas, alguém aí já ouviu falar de programação em N camadas? Já sei não é?
Irei exemplificar aqui uma maneira simples e econômica de se usar N camadas em seus projetos:
Primeiro, o que é camadas?(Se você já sabe pule esta parte)
Programação em N camadas é o ato de programar separando a parte lógica, da parte de regras de negócio da parte de visualização e também da parte de dados e de qualquer outra parte que você quiser(por isso é N sacou?).
Overview:
Comumente são usadas três camadas, cada de visualização, de regras de negócios e de lógica
Visualização -> É o que o usuário final visualiza no monitor
Regras de negócio -> É a camada onde terá todas as regras do sistema, ou seja, verifica, por exemplo, se o usuário tem permissão de acesso a essa ou aquela parte, verifica todos os processos que o sistema tem que realizar.
Lógica -> É onde vai ocorrer toda a programação
Na prática, como funciona:
Vamos fazer algo simples, apenas para exemplificar e depois no próximo artigo daremos uma aperfeiçoada na estrutura.
É necessário se criar três arquivos,
Dividimos assim, separando o índex.php que será o arquivo que o usuário visualizará a informação, temos classes.php onde ficarão nossas classes e por fim o índex_cdb.php que é onde ficará toda a programação.
Lembrando mais uma vez que isto é uma forma simples apenas para introdução do assunto.
O sufixo “_cdb” do arquivo de lógica vem do termo CodeBehind, o quer dizer código por trás. Nada mais óbvio não?
Funciona assim:
No arquivo classes.php:
Vemos ai uma classe simples que recebe o titulo e possui um método get_titulo () que retorna o titulo que foi inserido pelo instanciador.
Agora no arquivo index_cdb.php:
Percebam que aqui eu instancio a classe e faço o que tenho que fazer com elas já deixando os objetos prontos apenas para lançar os dados na camada de visualização, agora a página de visualização, index.php:
Fácil não? Reparem que na página index a única coisa que é feita e a visualização dos dados, eu não fiz nenhuma busca, nenhuma lógica nem instanciei nada. Este, prezados, é o princípio da programação em camadas. É claro que não é tudo, ainda tem muito que ser implementado, mas já temos uma idéia de como separar nossos códigos de forma legível e fácil de debugar.
Após perder algum tempo estudando o funcionamento do framework da Zend, eu cheguei a conclusão de que eles são muito além do que eu quero, a única coisa que eu estava interessado era em algumas bibliotecas apenas como o autoloader por exemplo. E não estava de forma alguma querendo trabalhar à maneira deste framework que aliás é magnífico, porém oferece aos iniciantes uma dificuldade enorme.
Uma maneira interessante de ter alguma padronização em seu trabalho é dividir em camadas, alguém aí já ouviu falar de programação em N camadas? Já sei não é?
Irei exemplificar aqui uma maneira simples e econômica de se usar N camadas em seus projetos:
Primeiro, o que é camadas?(Se você já sabe pule esta parte)
Programação em N camadas é o ato de programar separando a parte lógica, da parte de regras de negócio da parte de visualização e também da parte de dados e de qualquer outra parte que você quiser(por isso é N sacou?).
Overview:
Comumente são usadas três camadas, cada de visualização, de regras de negócios e de lógica
Visualização -> É o que o usuário final visualiza no monitor
Regras de negócio -> É a camada onde terá todas as regras do sistema, ou seja, verifica, por exemplo, se o usuário tem permissão de acesso a essa ou aquela parte, verifica todos os processos que o sistema tem que realizar.
Lógica -> É onde vai ocorrer toda a programação
Na prática, como funciona:
Vamos fazer algo simples, apenas para exemplificar e depois no próximo artigo daremos uma aperfeiçoada na estrutura.
É necessário se criar três arquivos,
- index.php
- classes.php
- index_cdb.php
Dividimos assim, separando o índex.php que será o arquivo que o usuário visualizará a informação, temos classes.php onde ficarão nossas classes e por fim o índex_cdb.php que é onde ficará toda a programação.
Lembrando mais uma vez que isto é uma forma simples apenas para introdução do assunto.
O sufixo “_cdb” do arquivo de lógica vem do termo CodeBehind, o quer dizer código por trás. Nada mais óbvio não?
Funciona assim:
No arquivo classes.php:
<?php
class printaTitulo
{
public $titulo;
function __construct($novo_titulo)
{
$this->titulo = $novo_titulo;
}
function get_titulo()
{
return $this->titulo;
}
}
?>Vemos ai uma classe simples que recebe o titulo e possui um método get_titulo () que retorna o titulo que foi inserido pelo instanciador.
Agora no arquivo index_cdb.php:
<?php
require('classes.php');
$meuTitulo = new printaTitulo('As 10 coisas que adoro no PHP');
$meuHeader = new printaTitulo('Bem vindo ao site');
?>Percebam que aqui eu instancio a classe e faço o que tenho que fazer com elas já deixando os objetos prontos apenas para lançar os dados na camada de visualização, agora a página de visualização, index.php:
<?php require('index_cdb.php'); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//PT" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php print($meuTitulo->get_titulo()); ?></title>
</head>
<body>
<h1><?php print($meuHeader->get_titulo()); ?></h1>
</body>
</html>Fácil não? Reparem que na página index a única coisa que é feita e a visualização dos dados, eu não fiz nenhuma busca, nenhuma lógica nem instanciei nada. Este, prezados, é o princípio da programação em camadas. É claro que não é tudo, ainda tem muito que ser implementado, mas já temos uma idéia de como separar nossos códigos de forma legível e fácil de debugar.
Resposta em até 24 horas! (grátis)Dúvidas?
Autor da matéria
Últimas matérias escritas pelo autor:
|
Cristiano Gomes Programador PHP com 4 anos de experiência, pai da sofia e louco por ficção científica. Atualmente trabalha como programador PHP e Java na Labz digital. msn: cmgomes.es@gmail.com |
Últimas matérias escritas pelo autor:
Matérias relacionadas
Últimas matérias
Últimas notícias
Dicas do canal
- PHP: Formulário de contato com validação
Muita das vezes um iniciante na área de web usa ja... - Dicas para otimizar seu código PHP
ou falar aqui sobre algumas pequenas dicas que voc...







Criando um Cliente para Twitter com PHP - Parte 1
O que você procura para sua vida profissional?
O planejamento agrega valor
E-mail marketing em 140 caracteres
Novos iPods, novo iOS, novo iTunes e nova Apple TV
Conheça as 100 primeiras cidades atendidas pelo Banda Larga ...
Linus Torvalds diz que mercado já se rendeu ao Linux