lunes, 18 de agosto de 2014

Parsing Template - Codeigniter

La librería Parser de Codeigniter es una librería que permite crear las vistas con pseudo-variables, ya que no son variables propias de PHP.
La ventaja de utilización de dicha librería es que aparte de que el código es mucho mas legible, el tiempo de carga de la página se reduce considerablemente cuando se trata de cargas de datos elevadas.

No vamos a entrar a fondo en como funciona dicha librería interiormente, pero si que vamos a ver como sacar provecho a nuestros proyectos para que queden elegantes.

Ejemplo de Template

En el siguiente ejemplo, veremos como cargar un conjunto de datos en forma de Post, donde contendrá un título y un contenido.


<html>
<head>
<title>{blog_title}</title>
</head>
<body>

<h3>{blog_heading}</h3>

{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
</body>
</html>

En este ejemplo cabe destacar las lineas {blog_entries} y {/blog_entries}.
Estas don lineas hacen la función de un foreach de PHP, recorrerá el array blog_entries, mientras contenga datos.

La variable {title} y {body} se substituiran por los valores que contentan en cada fila del array.

Un ejemplo de array que se utilizaría para dicho ejemplo sería el siguiente:


<?php
$data = array(
   'blog_title'   => 'My Blog Title',
   'blog_heading' => 'My Blog Heading',
   'blog_entries' => array(
  array('title' => 'Title 1', 'body' => 'Body 1'),
  array('title' => 'Title 2', 'body' => 'Body 2'),
  array('title' => 'Title 3', 'body' => 'Body 3'),
  array('title' => 'Title 4', 'body' => 'Body 4'),
  array('title' => 'Title 5', 'body' => 'Body 5')
  )
 );
?>

En el ejemplo anterior hemos creado un array de datos, donde blog_entries, es un array de arrays, este tipo de estructura se puede generar con una consulta en el fichero Model de Codeigniter como la siguiente:


$query = $this->db->get('post_blog');
return $query->result_array();

De esta forma obtendremos un estructura de arrays como la anterior.
Para más información sobre los ficheros Model y Controllers de Codeigniter podéis visitar la siguientes entradas:

Model

Controllers

Como dar uso a la estructura de datos

Lo primero de todo, se tendría que cargar la librería parser, ya sea en el propio controlador o en el fichero de autoload.php situado dentro de la carpeta config.


$this->load->library('parser');

Ahora viene el paso importante, y es como enviar los datos al fichero vista creado anteriormente.
Simplemente se envían mediante la siguiente linea:


$this->parser->parse('blog_template', $data);

De esta forma la librería parser ya se encarga de parsear y mostrar los datos en la vista tal y como le hemos indicado en la plantilla.

Para más información sobre el parseo de datos, consultar el siguiente link: Parser


No hay comentarios:

Publicar un comentario