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 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.

Por | @cristianogomes Programação
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,
  • 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:

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:

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 print($meuTitulo->get_titulo()); ?>



    

get_titulo()); ?>




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.

Mais sobre: php camadas desenvolvimento
Share Tweet
Recomendado
Comentários
Carregar comentários
Destaquesver tudo

Siga nossas contas no Twitter