Controller
Vamos aprender agora como criar controladores, ações e utilizar os métodos disponíveis em controladores e views no aplicativo.
Primeiro vamos entender alguns termos.
http://seusite.com.br/controlador/acao/param1/valor1/param2/valor2
Um controlador é uma classe que deverá conter um grupo de ações (editar, salvar, etc…) além de métodos complementares. O controlador é identificado através do primeiro parâmetro após o endereço do site na URL.
Uma ação é a lógica de determinada página. Você pode separar sua lógica em diversas classes e métodos a seu gosto. Uma ação é identificada como sendo o segundo parâmetro após o endereço do site na URL.
Quaisquer outros parâmetros passados pela URL após controlador e ação pode ser utilizado a seu modo. Iremos mostrar como capturar estes parâmetros mais a frente.
Acessar o link http://seusite.com.br é o mesmo que acessar http://seusite.com.br/index/index ou seja, tanto controlador quanto ação por padrão são chamados index.
Criando arquivo de controlador:
Onde criar o arquivo do controlador? Bem, quem tem que responder a esta pergunta é você mesmo, pois é quem define onde o arquivo será criado. Vamos revisar o arquivo de configuração do sistema.
[paths] application.controllers = "../application/controllers/" application.models = "../application/models/" application.views = "../application/views/scripts/" layout.path = "../application/views/layouts/" [development] errors.reporting = E_ALL errors.display = 1 [production] errors.reporting = 0 errors.display = 0
Esta é a configuração padrão do arquivo INI de configurações. Ou seja, está definido para que os arquivos controladores sejam criados dentro da pasta application/controllers/.
Hora de criar um arquivo. O nome do controlador é algo bem restrito ou seja, se você quer criar um link do tipo
http://seusite.com.br/usuarios/cadastro em seu site o nome do controlador deve ser:
UsuariosController.php
O nome da classe também é, de certa forma, pré-definido pelo sistema. Para este caso você deverá criar a classe da seguinte forma:
class UsuariosController extends Codepass_Controller_Settings
{
public function init() {
// Método executado antes de qualquer ação chamada pela URL
}
public function indexAction() {
// Método executado quando chamamos a URL
// http://seusite.com.br/usuarios
}
public function cadastroAction() {
// Método executado quando chamamos a URL
// http://seusite.com.br/usuarios/cadastro
}
}
O método init() é um método “global” que será executado antes de qualquer ação chamada pela URL. Isso significa que quando você digitar http://seusite.com.br/usuarios o método desta classe chamado será indexAction(), mas o método init() será executado antes do método indexAction().