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