FuelPHP - Visualizações
Viewé a camada de apresentação do aplicativo MVC. Ele separa a lógica do aplicativo da lógica da apresentação. Quando um controlador precisa gerar HTML, CSS ou qualquer outro conteúdo, ele encaminha a tarefa para o mecanismo de visualização.
O FuelPHP fornece uma classe simples e flexível, View, com todos os recursos necessários de um view engine. A classe de visualização suporta renderização de arquivo de visualização O arquivo de visualização é uma página HTML com instruções PHP incorporadas. Variáveis do arquivo de visão podem ser definidas usando a classe View como array PHP e referenciadas no arquivo de visão usando a chave do array. Vamos verificar alguns dos métodos importantes da classe View.
forja
Purpose - Cria um novo objeto View
Parameter - A seguir estão os parâmetros
$file - Caminho do arquivo de visualização em relação à pasta de visualizações, fuel / app / views
$data - Matriz de valores
$filter - Define a codificação automática, o padrão é as configurações no arquivo de configuração principal
Returns - Instância da vista
Por exemplo,
$view = View::forge ('path/to/view', array(
'title' => "Show employee,
'employees' => $employees,
));
filtro automático
Purpose - Defina se codificar os dados ou não
Parameter - A seguir está o parâmetro
$filter - verdadeiro / falso
Returns - Objeto de visualização atual
Por exemplo,
$view->auto_filter();
$view = $view->auto_filter(false);
set_filename
Purpose - Permite definir ou alterar o arquivo de visualização.
Parameter - A seguir está o parâmetro -
$file - Caminho para visualizar o arquivo em relação à pasta de visualizações, combustível / app / visualizações
Returns - Objeto de visualização atual
Por exemplo,
$view = new View();
$view>set_filename('path/to/view');
conjunto
Purpose - Defina o valor de uma ou mais variáveis
Parameter - A seguir estão os parâmetros
$key - Nome da variável ou matriz de valores
$value - Valor / nulo
$filter - Configuração de codificação, verdadeiro / falso
Returns - Objeto de visualização atual
Por exemplo,
$view = new View();
$view->set(array('name' => 'Jon'));
set_global
set_global é semelhante a set, exceto que se aplica a todas as visualizações e as variáveis são acessíveis por todas as visualizações. Este é um método estático.
View::set_global('name', 'Jon', false);
set_safe
Purpose - Defina o valor de uma ou mais variáveis com codificação segura ativada.
Parameter - A seguir estão os parâmetros -
$key - Nome da variável ou matriz de valores
$value - Valor / nulo
Returns - Objeto de visualização atual
Por exemplo,
$view = new View();
$view->set_safe(array('name' => 'Jon'), null);
pegue
Purpose - Obtenha o valor de uma ou mais variáveis
Parameter - A seguir estão os parâmetros
$key - Nome da variável
$default - Valor padrão a ser retornado se a chave não for encontrada
Returns - Valor da chave de entrada
Por exemplo,
$view = new View();
$name = $view>get('name'); // name = 'Jon'
render
Purpose - Renderizar os arquivos de visualização em string mesclando-os com as variáveis locais e globais
Parameter - A seguir estão os parâmetros -
$file - O nome do arquivo de visualização
Returns - O arquivo de visualização renderizado como string
Por exemplo,
$html = View::forge()->render('/path/to/view');
Criar uma vista
Para entender as visualizações, vamos modificar o método de ação, action_show do controlador, Controller_Employee .
funcionário.php
<?php
class Controller_Employee extends Controller {
public function action_show() {
return View::forge('employee/show');
}
}
Agora crie uma pasta funcionário no diretório de visualizações, localizado em fuel / app / views . Em seguida, crie um arquivo show.php dentro da pasta de funcionários e adicione o seguinte código.
show.php
<h3> My first view </h3>
Agora, solicite a url http: // localhost: 8080 / employee / show e produz o seguinte resultado.
Passando dados para ver
Podemos passar dados para as visualizações usando métodos de visualização conforme discutido anteriormente. A seguir está um exemplo simples.
funcionário.php
class Controller_Employee extends Controller {
public function action_show() {
$data = array(); //stores variables going to views
$data['name'] = ‘Jon’;
$data[‘job’] = ‘Designer’;
//assign the view to browser output
return View::forge('employee/show', $data);
}
}
Agora, adicione as mudanças no view Arquivo.
show.php
<html>
<body>
Hello, <?php echo $name; ?>.
Your job is, <?php echo $job; ?>.
</body>
</html>
Depois de solicitar o URL, ele exibirá o nome e o trabalho da seguinte forma -
Ver filtro
As visualizações usam codificação de saída para passar o que você quiser. Se você quiser passar dados não filtrados, podemos usar o método set.
funcionário.php
class Controller_Employee extends Controller {
public function action_show() {
$view = \View::forge('employee/show');
$view->set('name', 'Jon', true);
$view->set('job', '<em>Designer</em>', false);
return $view;
}
}
Depois de solicitar o URL, ele exibirá os detalhes do trabalho com ênfase, conforme a seguir.
Vistas aninhadas
FuelPHP suporta visualizações aninhadas. Em visualizações aninhadas, uma visualização pode conter uma ou mais visualizações. Para definir as visualizações em outra visualização, podemos usar o método de renderização da seguinte forma.
funcionário.php
class Controller_Employee extends Controller {
public function action_nestedview() {
//assign variables
$data = array();
$data['title'] = 'Home';
$data['name'] = 'Jon';
$data['job'] = 'Designer';
$views = array();
$views['head'] = View::forge('head', $data)->render();
$views['content'] = View::forge('employee/show', $data)->render();
return View::forge('layout', $views, false)->render();
}
}
fuel / app / views / layout.php
<html>
<head>
<?php echo $head; ?>
</head>
<body>
<?php echo $content; ?>
</body>
</html>
fuel / app / views / head.php
<title>
<?php echo $title; ?>
</title>
fuel / app / views / employee / show.php
Hello, <?php echo $name; ?>.
Your job is, <?php echo $job; ?>.
Depois de solicitar a URL, http: // localhost: 8080 / employee / nestedview e verificar a visualização do código-fonte, ele fornece o seguinte código.
<html>
<head>
<title>Home</title>
</head>
<body>
Hello, Jon.
Your job is, Designer.
</body>
</html>
Controlador de modelo
FuelPHP fornece um controlador, Controller_Template, com conceito de layout integrado. O conceito de layout é feito usandobefore() e after()método do controlador. Para usar o controlador de modelo, precisamos estender o controlador usando Controller_Template em vez de Controller. Ao usar o método after () / before (), precisamos chamar parent :: before e parent :: after, caso contrário, o template quebra.
<?php
class Controller_Test extends Controller_Template {
public function before() {
parent::before();
// do stuff
}
public function after($response) {
$response = parent::after($response);
// do stuff
return $response;
}
}
template.php
É um arquivo de modelo padrão no Fuel. O arquivo de modelo é usado para chamar JS, CSS, HTML e chamar visualizações parciais. Está localizado emfuel/app/views/. Os modelos são usados para envolver sua visão em um layout com um cabeçalho, rodapé, barra lateral, etc. Podemos alterar o modelo padrão usando a variável $ template no método de ação a seguir.
fuel / app / classes / controller / test.php
<?php
class Controller_Test extends Controller_Template {
public $template = 'template_test';
public function action_index() {
$this->template->title = 'Example Page';
$this->template->content = View::forge('test/index');
}
}
fuel / app / views / template_test.php
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title><?php echo $title; ?></title>
<?php echo Asset::css('bootstrap.css'); ?>
</head>
<body>
<div>
<?php echo $content; ?>
</div>
</body>
</html>
fuel / app / views / test / index.php
<h3>My Test page</h3>
Agora, solicite a URL http: // localhost: 8080 / test e produz o seguinte resultado.
Resultado
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title>Example Page</title>
<link type = "text/css" rel = "stylesheet"
href = "http://localhost:8080/assets/css/bootstrap.css?1464964766" />
</head>
<body>
<div>
<h3>My Test page</h3>
</div>
</body>
</html>
Gerar página de visualização
Você pode gerar uma página de exibição usando o console de óleo de combustível. A seguir está a sintaxe básica.
oil g controller <controller-name> <page1> <page2> ..
Para gerar um controlador de administrador com páginas iniciais e de login, use o seguinte comando.
oil g controller admin home login
Resultado
Creating view: /path/to/app/fuel/app/views/admin/home.php
Creating view: /path/to/app/fuel/app/views/admin/login.php
Creating controller: /path/to/app/fuel/app/classes/controller/admin.php