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.
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.
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:
Uma vez criado o arquivo, podemos acessar com o navegador o controlador, com uma URL como esta:
http://localhost/index.php/artigos
No artigo seguinte veremos como podemos criar funções nos controladores, para dar lugar a páginas diferentes que dependam do mesmo controlador.
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