Friday, January 21, 2011

Introdução ao Framework (PHP) CodeIgniter

Esse artigo visa dar uma explicação mais clara do padrão de projetos MVC, onde se separa completamente em 3 partes independentes o controller (lógica da aplicação), o view (visual) e o model (acesso ao banco). Antes vamos ver alguns pontos fortes e fracos desse padrão para desenvolvimento web.

Permite que designers e programadores trabalhem juntos sem um ficar dependendo do outroO programador não fica obrigado a usar apenas um tipo de banco de dados, pode facilmente alterar de mysql para oracle por exemplo sem mecher no programa, alterando apenas alguns parametros de configuração de banco de dados.O reaproveitamento de código é amplamente utilizadoA modularização de software é bastante exploradaExige um certo tempo de estudo e prática no início do aprendizadoErros são comuns nos primeiros projetosDocumentação e ajuda em sua maior parte está em inglês

Na imagem ao lado podemos distinguir alguns diretórios que são de bastante importância para nós:

Diretório “application”:

Este diretório irá conter toda a sua aplicação e seus códigos personalizados. Se você precisa alterar alguma coisa em alguma classe do core do codeigniter deverá sobrescrever dentro do diretório application. Por exemplo, se deseja fazer com que a classe de paginação (que se encontra dentro de system/libraries/Pagination.php) escreva links com uma classe em particular, deverá sobrescrever essa classe dentro do diretório application/libraries. Mais a frente explicarei como criar e alterar bibliotecas no ci.

Diretório “cache”:

Este diretório pode aliviar um pouco seu servidor caso sua aplicação tenha muitos acessos. Não é necessário configurar nada ali dentro, mas esse diretório precisa ter permissão de escrita ativada para o cache funcionar sem erro. O diretório application Aqui dentro temos todos os arquivos necessários para sua aplicação rodar em qualquer núcleo (core) do codeigniter. Segue abaixo uma introdução aos diretórios mais importantes:

O diretório “config”:

Nesse diretório encontramos arquivos de configurações como constantes personalizadas, configurações de banco de dados e do próprio funcionamento do codeigniter.

O diretório “controllers”:

Aqui é onde encontraremos os controllers da nossa aplicação, mais abaixo teremos uma explicação do que são, pra que servem e como utilizá-los

O diretório “models”:

Nesse diretório iremos salvar classes que irão representar as nossas entidades no banco de dados, são os famosos models, responsáveis pelo acesso ao banco.

O diretório “libraries”:

Nessa pasta podemos criar nossas classes personalizadas para auxiliar em tarefas comuns, é o principal meio de reaproveitamento de código no codeigniter. Por exemplo, podemos ter uma classe responsável por autenticação de usuários. Como todos os projetos que faremos irá utilizar autenticação, podemos criar uma classe responsável por isso e reaproveitá-la economizando alguns minutos no desenvolvimento.

O diretório “language”:

Quando utilizamos as classes nativas do codeigniter, as mensagens de erro são sempre em inglês. Podemos utilizar este diretório para salvar arquivos-linguagens, que permitem tanto modificar a mensagem que a classe nativa irá exibir, como também auxiliar em projetos multi-linguagem.

O diretório “views”:

Toda a parte visual da aplicação virá aqui. Existem programadores que gostam de colocar as imagens, css e javascripts aqui dentro e outros que preferem deixar apenas o html visual, com os css, imagens e javascripts fora do diretório system, do codeigniter. Sinceramente, isso não irá fazer muita diferença na sua aplicação.

Antes de começarmos a programar, vamos entender primeiro o fluxo de dados do codeigniter: Como podemos ver acima, em primeiro lugar o usuário faz a requisição da página. Essa requisição chama o controller da aplicação responsável por exibir aquela página. Esse controller chama as libraries, models e helpers que precisa para processar as informações que serão exibidas na tela, e finalmente invoca a view responsável por exibir o visual que o usuário irá visualizar. Criando um projeto inicial Vamos criar um controller para nossa aplicação chamado “Contato”.  Salve um arquivo chamado “contato.php” no diretório application/controllers com o seguinte código:

formulario();}function formulario(){$dados['titulo'] = “Formulário de Contato”;$dados['ip'] = $this->input->ip_address(); //método da classe nativa “input” responsável por retornar o IP do usuário$this->load->view(“form-contato”, $dados);}}?>

Agora vamos criar a view responsável por exibir na tela o formuário de contato desse controller. Crie um arquivo chamado “form-contato.php” dentro do diretório application/views com o seguinte código:

Seu nome:
Seu email:
Sua mensagem: Seu endereço de IP é: O código é o mesmo que dizer . Onde foi definida essa variável título? No controller que chamou essa view. Lá, a variável titulo, assim como a variável ip, são índices de um vetor, que foi passado como segundo parâmetro do método view() da classe load ($this->load->view(NOME-DA-VIEW, ARRAY-COM-VARIAVEIS)).Podemos perceber que na action do formulário ele aponta para: index.php/contato/enviar. Significa que ao submeter esse formulário, ele irá acessar uma URL do codeigniter que irá chamar o controller Contato, e executar o método enviar(), passando os campos como POST.

Para acessar nosso formulário basta você entrar na URL: seusite.com/index.php/contato ou então: seusite.com/index.php/contato/formulario. Dessa forma seguimos o padrão de URL que o codeigniter usa: index.php/nome-do-controller/nome-do-metodo/parametro-1/parametro-1/…/parametro-n Se você acessar apenas: index.php/nome-do-controller/ o codeigniter irá converter isso automaticamente para: index.php/nome-do-controller/index, ou seja, se nenhum método for passado pela url, o método padrão a ser acessado será o método index(), caso ele não tenha sido declarado, ocorrerá um erro. Espero que tenham gostado galerinha, o tuto foi bem simples, mas acho que dá pra ter uma idéia do que é o codeigniter e como trabalhar com ele. Estou pensando em dar um curso de php orientado a objetos ou de codeigniter. Vou lançar uma enquete. Votem e o resultado irá decidir. Fiquem ligados no blog e assinem a newsletter para ficarem em dia com as novidades.

Fonte: Blog Estilo Fácil

0 comments:

Post a Comment