FuelPHP - Vistas
Viewes la capa de presentación de la aplicación MVC. Separa la lógica de la aplicación de la lógica de presentación. Cuando un controlador necesita generar HTML, CSS o cualquier otro contenido, reenvía la tarea al motor de visualización.
FuelPHP proporciona una clase simple y flexible, Vista con todas las características necesarias de un motor de vista. La clase de vista admite la representación del archivo de vista. Ver archivo es una página HTML con instrucciones PHP integradas. Las variables del archivo de vista se pueden establecer usando la clase de Vista como matriz PHP y se puede hacer referencia en el archivo de vista usando la clave de la matriz. Veamos algunos de los métodos importantes de la clase View.
fragua
Purpose - Crea un nuevo objeto de vista
Parameter - Los siguientes son los parámetros
$file - Ruta del archivo de vista relativa a la carpeta de vistas, combustible / aplicación / vistas
$data - Matriz de valores
$filter - Establece la codificación automática, los ajustes predeterminados en el archivo de configuración principal
Returns - Instancia de la vista
Por ejemplo,
$view = View::forge ('path/to/view', array(
'title' => "Show employee,
'employees' => $employees,
));
auto_filter
Purpose - Establecer si codificar los datos o no
Parameter - A continuación se muestra el parámetro
$filter - verdadero / falso
Returns - Objeto de vista actual
Por ejemplo,
$view->auto_filter();
$view = $view->auto_filter(false);
set_filename
Purpose - Permite configurar o cambiar el archivo de vista.
Parameter - A continuación se muestra el parámetro -
$file - Ruta para ver el archivo relativo a la carpeta de vistas, combustible / aplicación / vistas
Returns - Objeto de vista actual
Por ejemplo,
$view = new View();
$view>set_filename('path/to/view');
conjunto
Purpose - Establecer el valor de una o más variables
Parameter - Los siguientes son los parámetros
$key - Nombre de variable o matriz de valores
$value - Valor / nulo
$filter - Configuración de codificación, verdadero / falso
Returns - Objeto de vista actual
Por ejemplo,
$view = new View();
$view->set(array('name' => 'Jon'));
set_global
set_global es similar a set, excepto que se aplica a todas las vistas y todas las vistas pueden acceder a las variables. Este es un método estático.
View::set_global('name', 'Jon', false);
set_safe
Purpose - Establecer el valor de una o más variables con codificación segura activada.
Parameter - Los siguientes son los parámetros -
$key - Nombre de variable o matriz de valores
$value - Valor / nulo
Returns - Objeto de vista actual
Por ejemplo,
$view = new View();
$view->set_safe(array('name' => 'Jon'), null);
obtener
Purpose - Obtener el valor de una o más variables
Parameter - Los siguientes son los parámetros
$key - Nombre de variable
$default - Valor predeterminado que se devolverá si no se encuentra la clave
Returns - Valor de la clave de entrada
Por ejemplo,
$view = new View();
$name = $view>get('name'); // name = 'Jon'
hacer
Purpose - Renderice los archivos de vista en una cadena fusionándola con las variables locales y globales
Parameter - Los siguientes son los parámetros -
$file - El nombre del archivo de la vista
Returns - El archivo de vista renderizado como cadena
Por ejemplo,
$html = View::forge()->render('/path/to/view');
Crear una vista
Para entender las vistas, modifiquemos el método de acción, action_show del controlador, Controller_Employee .
employee.php
<?php
class Controller_Employee extends Controller {
public function action_show() {
return View::forge('employee/show');
}
}
Ahora cree una carpeta de empleado en el directorio de vistas, ubicado en fuel / app / views . Luego, cree un archivo show.php dentro de la carpeta de empleados y agregue el siguiente código.
show.php
<h3> My first view </h3>
Ahora, solicite la URL http: // localhost: 8080 / employee / show y producirá el siguiente resultado.
Pasar datos para ver
Podemos pasar datos a las vistas usando métodos de Vista como se discutió anteriormente. A continuación se muestra un ejemplo sencillo.
employee.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);
}
}
Ahora, agregue los cambios en el view archivo.
show.php
<html>
<body>
Hello, <?php echo $name; ?>.
Your job is, <?php echo $job; ?>.
</body>
</html>
Después de solicitar la URL, mostrará el nombre y el trabajo de la siguiente manera:
Ver filtro
Las vistas usan la codificación de salida para pasar lo que quieras. Si desea pasar datos sin filtrar, podemos usar el método set.
employee.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;
}
}
Después de solicitar la URL, mostrará los detalles del trabajo con énfasis, de la siguiente manera.
Vistas anidadas
FuelPHP admite vistas anidadas. En las vistas anidadas, una vista puede contener una o más vistas. Para configurar las vistas en otra vista, podemos usar el método de renderizado de la siguiente manera.
employee.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; ?>.
Después de solicitar la URL, http: // localhost: 8080 / employee / nestedview y verificar la vista de origen, da el siguiente código.
<html>
<head>
<title>Home</title>
</head>
<body>
Hello, Jon.
Your job is, Designer.
</body>
</html>
Controlador de plantilla
FuelPHP proporciona un controlador, Controller_Template con un concepto de diseño incorporado. El concepto de diseño se realiza utilizandobefore() y after()método de controlador. Para usar el controlador de plantilla, necesitamos extender el controlador usando Controller_Template en lugar de Controller. Mientras usamos el método after () / before (), necesitamos llamar a parent :: before y parent :: after, de lo contrario, la plantilla se rompe.
<?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
Es un archivo de plantilla predeterminado en Fuel. El archivo de plantilla se utiliza para llamar a JS, CSS, HTML y llamar a vistas parciales. Está localizado enfuel/app/views/. Las plantillas se utilizan para envolver su vista en un diseño con un encabezado, pie de página, barra lateral, etc. Podemos cambiar la plantilla predeterminada usando la variable $ template en el método de acción de la siguiente manera.
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>
Ahora, solicite la URL http: // localhost: 8080 / test y producirá el siguiente 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>
Generar página de vista
Puede generar una página de visualización utilizando la consola Fuel's Oil. A continuación se muestra la sintaxis básica.
oil g controller <controller-name> <page1> <page2> ..
Para generar un controlador de administración con páginas de inicio y de inicio de sesión, use el siguiente 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