Controllers em CodeIgniter

O que são os controladores -controllers em inglês- no modelo MVC e especificamente no framework PHP CodeIgniter, como criá-los e utilizá-los para gerar as páginas de um site.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 11/8/11
Valorize este artigo:
Os controladores são um dos componentes que fazem parte do modelo de programação MVC (Modelo - Visão - Controlador ou Model - View - Controller em inglês) que servem como engrenagem principal à hora de criar aplicações web. Dado que CodeIgniter utiliza a arquitetura MVC, teremos que aprender a manejar e dominar os controladores como um primeiro passo para começar a trabalhar com este framework PHP.

Para aqueles que não saibam o que é o MVC vale dizer que já foi explicado neste manual de CodeIgniter, especificamente no capítulo Modelo - Visão - Controlador em CodeIgniter. Assim, podemos passar diretamente a explicar as particularidades dos controladores neste entorno de programação.

Para explicar os controladores vou me basear na própria documentação do framework PHP, que está tutorializada, como já dissemos na introdução a CodeIgniter. De modo que resulta uma excelente maneira para aprender a dar os primeiros passos no desenvolvimento de aplicações.

O que é um controlador

Um controlador em CodeIgniter é um arquivo que contém o código de uma classe, de programação orientada a objetos, que colocamos em um diretório específico do esquema de pastas de nosso site. Tem um nome qualquer, que se associará com uma URL de nossa aplicação web.

Por exemplo, esta poderia ser uma URL de nossa aplicação:

meudominio.com/index.php/artigos

Na URL anterior podemos ver que a palavra "artigos" determina a página que queremos ver dentro de nossa aplicação. Pois bem, para poder atender a esta requisição nós vamos ter que criar um arquivo chamado artigos.php (o controlador) dentro do diretório que aloja os controladores de nossa aplicação.

Por tanto, quando CodeIgniter detecta uma URL como esta, tentará acessar o arquivo artigos.php, para carregá-lo, processá-lo e desse modo mostrar a página com os conteúdos desta seção.

Quando esse controlador não se encontre entre os arquivos de controladores de CodeIgniter, simplesmente se mostrará um erro 404 de página não encontrada. Se for encontrado o controlador, como se dizia, se carrega e se processa para mostrar a página.

Os controladores em CodeIgniter são salvos na pasta "system/application/controllers/", que se encontra dentro dos arquivos de CodeIgniter.

Nota: Todos os arquivos que vamos ter que criar ou editar para desenvolver nossa aplicação PHP com CodeIgniter estão dentro da pasta "system/application" e existe uma pasta dentro para cada tipo de coisa que desejemos criar ou modificar, como arquivos de configuração, modelos, vistas, etc.

Criando um primeiro controlador em CodeIgniter

Para começar a programar em CodeIgniter vamos criar um primeiro controlador, chamado artigos, que apenas mostrará uma mensagem de boas-vidas para saber que tudo está funcionando corretamente.

O código deste primeiro controlador será o seguinte:

<?php
class Artigos extends Controller {

   function index()
   {
      echo 'Bem vindo ao meu primeiro controlador em CodeIgniter';
   }
}
?>

Temos que salvar este arquivo como "artigos.php" na pasta "system/application/controllers/". Vale a pena assinalar uns detalhes importantes:

  • O nome do arquivo de controlador, neste caso artigos.php, vai em minúsculas.
  • O nome da classe que implementa o controlador tem que se chamar igual ao nome do arquivo, mas observem que tem obrigatoriamente a primeira letra em maiúscula. Por isso aparece como class Artigo extends Controller.
  • Todos os controladores tem que estender a classe "Controller" (que também possui a primeira letra "C" em maiúscula), que está criada dentro de CodeIgniter e em principio não necessitamos modificá-la de forma alguma.

Uma vez criado o arquivo, podemos acessar com o navegador o controlador, com uma URL como esta:

http://localhost/index.php/artigos

Nota: Esta URL supõe que você instalou CodeIgniter na raiz de seu servidor web, mas você poderia ter instalado CodeIgniter em outro diretório, nesse caso a URL teria uma forma como http://localhost/diretorio_de_codeigniter/index.php/artigos

No caso de que tudo esteja funcionando corretamente, você terá que visualizar uma página com a mensagem que você havia colocado no eco que há dentro da função index() do controlador. Se não funcionar, confirme sua URL, que tem que acessar o diretório correto onde você tenha instalado CodeIgniter e que tem que acabar com o nome do controlador em minúsculas. Confirme também que a classe que você criou no código do controlador tem a primeira letra em maiúscula. Não deve haver muito problema nem dificuldade.

No artigo seguinte veremos como podemos criar funções nos controladores, para dar lugar a páginas diferentes que dependam do mesmo controlador.

Controlador por padrão

Porém, antes de terminar este artigo, quero falar sobre o controlador por padrão, que é o que se invoca em CodeIgniter quando não se especifica nenhum nome de diretório e, portanto, nenhum controlador, na seguinte URL:

meudominio.com/index.php/

Ou então nesta outra:

meudominio.com/

Isto, que seria a home da aplicação CodeIgniter, e eventualmente a home do domínio, se tivermos instalado o framework na raiz do diretório de publicação, invoca também um controlador, que é o controlador por padrão.

O nome do controlador predeterminado (Default Controller) pode ser variável, sendo o desenvolvedor o encarregado de configurá-lo em um dos arquivos de configuração de CodeIgniter, que se encontra no arquivo "application/config/routes.php".

Nesse arquivo simplesmente temos que buscar o valor $route['default_controller'] e atribuir-lhe o nome da classe onde está o controlador que queiramos que se invoque. Como é o nome de uma classe de um controlador teremos que escrevê-lo com a primeira letra em maiúscula.

$route['default_controller'] = 'Artigos';

Se observarmos o valor desta variável de configuração, tal como está no momento inicial, depois da instalação de CodeIgniter, veremos que o controlador por padrão está na classe "Welcome", arquivo application/controllers/welcome.php





Comentários do artigo
Foram enviados 3 comentários ao artigo
2 comentários não revisados
1 comentário revisado:
gostei!
Por: cfgonsalves
08/10/12
Esse material do code igniter é show de bola!!!

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato