Em artigos anteriores de CriarWeb.com demos uma boa introdução aos controladores, e ainda que realmente não tenhamos visto tudo o que eles nos oferecem, estamos em condições de aprender outras coisas vantajosas de CodeIgniter, que certamente nos motivarão durante nossa aprendizagem, ao vermos que tudo é bastante fácil de assimilar.
As visões não são acessadas nem invocadas diretamente com a requisição de uma URL em nossa aplicação web, como já devemos imaginar. Na realidade, são módulos invocados desde os controladores, já que no modelo - visão - controlador que implementa CodeIgniter, a lógica de nossa aplicação é armazenada no controlador e é este que deve chamar as visões que necessite para mostrar os resultados ao visitante.
Assim, os controladores decidirão o que fazer quando se receba uma requisição e as visões decidirão como mostrar os resultados. Dito de outra forma, a lógica de nossa aplicação residirá no controlador e a visão manterá o aspecto de nossa página, o desenho da página que será mostrada ao usuário.
<html lang="es">
<head>
<title>Minha página web</title>
</head>
<body>
<h1>Benvindo à minha web</h1>
</body>
</html>
Agora podemos salvar essa visão com o nome que quisermos e extensão php, por exemplo, minhavisão.php, no diretório das visões que é "system/application/views".
Para carregar uma visão fazemos o seguinte:
$this->load->view('nomeDaVisão');
Em 'nomeDaVisão' teremos que indicar o nome do arquivo onde salvamos a visão, porém sem o ".php".
Vejamos então como ficaria um controlador que chama a visão que fizemos antes neste artigo.
<?php
class MeuControlador extends Controller {
function index(){
$this->load->view('minhavisão');
}
}
?>
Este controlador é salvo na pasta de controllers com o nome "meucontrolador.php". E agora, poderemos acessá-lo por meio de uma URL como esta:
http://localhost/index.php/meucontrolador
Ou se tivermos CodeIgniter instalado em nosso domínio, com uma URL como esta outra:
http://www.meudominio.com/index.php/meucontrolador
Deveríamos ver simplesmente o conteúdo dessa visão criada anteriormente. É simples assim.
Para tal, simplesmente criamos um subdiretório com o nome que queiramos, dentro de "views" e salvamos ali as visões. Por exemplo, pensemos que temos várias visões que pertencem todas à zona de registro de usuários e queremos organizá-las na pasta "registro" (rota completa "system/application/views/registro"). Então, as visões colocadas ali seriam invocadas indicando o subdiretório onde se encontram, da seguinte maneira:
$this->load->view('registro/formulario_registro');
Poderemos invocar várias visões em uma função de um controlador, de uma maneira similar a esta:
function carregarVisões(){
//carrego uma visão cabeçalho.php que está no diretorio layouts
$this->load->view('layouts/cabeçalho');
//carrego uma visão chamada formulario_busca.php
$this->load->view('formulario_busca');
//crio um array de dados para enviar a uma visão
$datos['page_title'] = 'Meu Título';
//carrego uma vista chamada corpo.php à que mando um array de dados para configurá-la
$this->load->view('corpo', $dados);
//carrego uma visão que está no diretório layouts
$this->load->view('layouts/pé');
}
Neste exemplo, carregamos várias visões e em uma delas enviamos dados para configurar como se mostrará ao visitante, especificamente a visão corpo.php. Esta utilidade é fundamental para que as visões mostrem qualquer informação enviada desde os controladores e não somente um texto sempre igual. No próximo artigo sobre visões aprenderemos a realizar esta ação.