zeanwork.com.br  >>  Documentação  >>  Views
Views
A visão ou View representa a camada de apresentação da aplicação. Aqui você cria a interface de sua
aplicação, preocupado somente em mostrar os dados para o usuário, sem precisar se preocupar da
lógica do aplicativo, utilizando o HTML, CSS, JavaScript e algumas estruturas básicas do PHP.

Em alguns casos, não há necessidade de termos um controller e uma action para uma view que não utilizará dados enviado pelo controller, tornando assim uma view estática. Porem também existem as views dinâmicas, que por sua vez necessita de dados que são enviados do controller.


Views estáticas

As view estáticas são aquelas que você não precisa de um controoler e de uma action para executar procedimentos da lógica da aplicação ou recuperar dados do controller.
Por exemplo, estamos desenvolvendo um site para uma empresa, este site terá diversas páginas, sendo que uma delas é ‘A Empresa’, pensando em um modo geral, não há necessidade de lógica envolvendo o controller, com isso podemos utilizar uma view estática.

Para fazer esta view estática, devemos criar uma pasta chamada Empresa em App/Views/ e também criar o arquivo de view com o nome de index.html.php. Com isso já temos uma view estática, ela esta acessível através da URL: /empresa.

Você também pode criar mais páginas dentro desta página, como se fosse um sub menu, por exemplo, você deseja criar uma página: A Empresa >> História e assim consequentemente mais páginas. Para criarmos esta página devemos criar um arquivo na pasta App/Views/Empresa/ chamado historia.html.php. Está página estará acessível pela URL: /empresa/historia.


Views dinâmicas

As views dinâmicas são aquelas que você precisa de informações processadas pelo controller.
Como a view é a camada de apresentação da aplicação, devemos utilizar as variáveis enviadas pelo controller contendo strings e/ou array para exibir estas informações na view. Com isso devemos utilizar apenas estruturas e funções básicas do PHP, como: if, for, foreach, e os helpers.

Por exemplo, vamos criar uma página para listagem dos produtos e outra para exibir os detalhes desses produtos.
Consideramos que já foi criado o controller e suas action, contendo todos os procedimentos necessários para exibir estas informações nas views.
Para iniciarmos, vamos criar uma pasta em App/Views/ com o nome do controller, no nosso caso é Produtos, então ficará App/Views/Produtos/. Agora devemos criar um arquivo para as views, que deverá ser chamada conforme o nome da action, no nosso caso é para a listagem dos produtos e outra para ver os detalhes dos produtos, o nome das actions são: index e ver, o nome do arquivo destas views deverá ser o nome das actions, no nosso caso é index.html.php e ver.html.php. Estas páginas estarão disponíveis pelas URL’s: /produtos e /produtos/ver.

Veja exemplo:
//Controller
class ProdutosController extends AppController {
	public function index(){
		$this->setVar('produtos', $this->produtos->read());
	}
	public function ver($id = null){
		$this->setVar('produto', $this->produtos->findById($id));
	}
}


//View index.html.php
$this->load->helper(array('html'));
echo '
    '; foreach($produtos as $produto){ echo '
  • '; echo $this->html->link($produto['nome'], Router::url('/produtos/ver/'.$produto['id'])); echo '
  • '; } echo '
'; //View ver.html.php if($produto){ echo 'Nome: '.$produto['nome'].br(); echo 'Descrição: '.$produto['descricao']; }else{ echo 'Produto não encontrado!'; }