Controller

Postado 23 de julho de 2011 Por Marco A. Braghim

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

Deixe uma resposta

WP-Highlight