Visões em CodeIgniter

O que são as visões e como devemos utilizá-las em CodeIgniter para maximizar as vantagens do modelo - visão - controlador.

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


Publicado em: 09/9/11
Valorize este artigo:
Vamos passar a um novo tema noManual de CodeIgniter onde começaremos as explicações das visões, parte fundamental neste framework PHP e no padrão de desenvolvimento de aplicações que utiliza, chamado modelo - visão - controlador.

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.

O que são as visões

Uma visão é uma página web ou um fragmento que se salva em um arquivo à parte. Em uma visão poderíamos salvar, portanto, toda a estrutura de uma página, ou se preferimos uma organização mais minuciosa e por módulos; poderemos salvar simplesmente uma seção, como pode ser o cabeçalho, o pé, a barra de navegação, etc. Poderemos marcar, nós mesmos, o grau de complexidade no trabalho com visões, segundo nossas preferências, costumes de desenvolvimento ou necessidades específicas, dado que poderemos aninhar visões dentro de outras em qualquer nível de hierarquia.

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.

Criar uma visão

Criar uma primeira visão em nossa aplicação web é muito simples. Simplesmente criamos um arquivo com um pouco de código HTML.

<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".

Carregar uma visão

Como dizíamos, podemos invocar uma visão desde um controlador. De fato, cada vez que desejemos mostrar na página qualquer texto, devemos invocar a visão que necessitemos, ou pelo menos seria essa a maneira de proceder, em vez de fazer sentenças "echo" ou similares diretamente no controlador.

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.

Armazenar visões em subdiretórios

Devemos colocar todas as visões no diretório "views" (system/application/views), mas , se desejarmos, podemos organizá-las por subdiretórios, o que pode ser de utilidade se vamos manipular grande número de visões diferentes, que dependem de seções variadas da página.

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');

Chamar várias visões desde um controlador

Nada impede que organizemos nosso conteúdo por partes, em visões diferentes. Na verdade, é uma boa prática que nos ajudará a manter nosso código de uma maneira mais simples. Chamar as diferentes visões irá concatenando todo o código HTML criado por cada visão e em seguida serão enviadas todas juntas ao navegador como o resultado de processar uma página.

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.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

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