Mini-tutorial Silex Añadiendo dependencias, Twig (II)

Written by Samuel de Ancos

En la anterior entrega (http://deancos.com/articles/mini-tutorial-silex-instalacion-i/ aprendimos como instalar Silex para comenzar un proyecto y escribimos nuestro primer controlador, dicho controlador simplemente lanzaba una cadena como respuesta, pero para poder realizar el proyecto que tenemos entre-manos necesitamos mas potencia a la hora de crear vistas, he aquí la solución: utilizaremos Twig el sistema de plantillas de PHP de moda.

Lo primero que vamos hacer es actualizar las dependencias de nuestro proyecto, como ya vimos en el capitulo anterior utilizaremos el fichero composer.json, añadiendo la dependencia que necesitamos, en este caso Twig:

{
    "require": {
        "silex/silex": "~1.1",
        "twig/twig": ">=1.8,<2.0-dev",
        "symfony/twig-bridge": "~2.3"
    }
}

Una vez guardado el fichero podemos actualizar nuestro proyecto:

$ php composer.phar update

Esto instalara en nuestro proyecto todo lo necesario para poder empezar a utilizar Twig como sistema de plantillas en nuestro proyecto Silex.

Una vez lo tenemos lo siguiente que necesitamos es registrar los servicios necesarios para que Twig este operativo, y cambiar la respuesta de nuestro controlador para que utilice una vista:

<?php
require_once __DIR__."/../vendor/autoload.php";

$app = new Silex\Application();
$app->register(new Silex\Provider\TwigServiceProvider(), array("twig.path" => __DIR__."/views",));

$app->get("/", function () use ($app) {
    return $app["twig"]->render("index.html", array("nombre" => "Samuel"));
});

$app->run();

Pasemos a explicar un poco las nuevas lineas del código:

En primer lugar registramos TwigServiceProvider y le decimos el path de nuestras vistas, en nuestro caso sera views, con esto ya podemos empezar a escribir el código de nuestras plantillas, en dicha carpeta que previamente deberíamos haber creado dentro de web:

$ mkdir views

Por ultimo la respuesta; como vemos en el código ahora utilizamos el servicio twig y su método render para responder pasando como parámetro la plantilla y un array con las posibles variables que queremos pasar a la vista, en este caso la variable nombre.

Ahora podemos crear nuestra primera plantilla Twig, index.html, dentro de la carpeta views:

<h1>Bienvenido {{ nombre }} a nuestro primer proyecto Silex con Twig!</h1>

Es un pagina sencilla para nuestro primer ejemplo, en capítulos posteriores veremos como aprovechar la potencia de Twig en nuestros proyectos Silex.

Ya lo tenemos, podemos ver el resultado en nuestro navegador preferido.

Ir a tercera parte del tutorial: mini-tutorial-silex-autenticacion-iii