WEBVTT

00:00:01.086 --> 00:00:05.066 align:middle
Acabamos de instalar un nuevo paquete
ejecutando composer require templates.

00:00:05.336 --> 00:00:10.746 align:middle
Normalmente, al hacerlo, Compos er
actualizará los archivos composer.json

00:00:10.806 --> 00:00:14.046 align:middle
y composer.lock, pero nada más.

00:00:14.276 --> 00:00:19.436 align:middle
Pero cuando lo ejecutamos:
git status Hay otros cambios.

00:00:19.816 --> 00:00:22.346 align:middle
Esto es gracias al sistema de
recetas de Flex. Cada vez que

00:00:23.156 --> 00:00:27.956 align:middle
instalamos un nuevo paquete, Flex
comprueba en un repositorio central

00:00:28.266 --> 00:00:30.966 align:middle
si ese paquete tiene una receta.

00:00:31.386 --> 00:00:34.106 align:middle
Y si la tiene, la instala.

00:00:34.816 --> 00:00:36.836 align:middle
¿Dónde viven estas recetas?

00:00:37.646 --> 00:00:39.506 align:middle
En la nube...

00:00:39.816 --> 00:00:41.756 align:middle
o más concretamente en GitHub.

00:00:42.206 --> 00:00:42.836 align:middle
Compruébalo.

00:00:43.076 --> 00:00:49.256 align:middle
Ejecuta: composer recipes Este es un
comando añadido a Composer por Flex.

00:00:50.036 --> 00:00:53.036 align:middle
Enumera todas las recetas que se han instalado.

00:00:53.036 --> 00:01:00.786 align:middle
Y si quieres más información sobre una, ejecútala: composer
recipes symfony/twig-bundle Esta es una de las recetas que se

00:01:00.786 --> 00:01:03.066 align:middle
acaba de ejecutar.

00:01:03.726 --> 00:01:04.896 align:middle
Y... ¡guay!

00:01:05.616 --> 00:01:07.596 align:middle
¡Nos muestra un par de cosas bonitas!

00:01:08.496 --> 00:01:12.436 align:middle
La primera es un árbol de los archivos
que ha añadido a nuestro proyecto.

00:01:13.276 --> 00:01:16.996 align:middle
La segunda es una URL de la
receta que se ha instalado.

00:01:17.266 --> 00:01:19.206 align:middle
Haré clic para abrirla.

00:01:20.476 --> 00:01:26.366 align:middle
¡Sí! Las recetas de Symfony viven en un
repositorio especial llamado symfony/recipes.

00:01:27.216 --> 00:01:31.106 align:middle
Se trata de un gran directorio
organizado por nombre de paquete.

00:01:31.946 --> 00:01:36.936 align:middle
Hay un directorio symfony que contiene las recetas
de todos los paquetes que empiezan por symfony/.

00:01:37.086 --> 00:01:40.246 align:middle
El que acabamos de ver...

00:01:40.666 --> 00:01:43.726 align:middle
está aquí abajo: twig-bundle.

00:01:44.126 --> 00:01:49.876 align:middle
Y luego hay diferentes versiones de la receta
en función de tu versión del paquete.

00:01:50.276 --> 00:01:53.296 align:middle
Nosotros estamos utilizando
la última versión 5.4.

00:01:54.416 --> 00:01:59.326 align:middle
Cada receta tiene un archivo
manifest.json, que controla lo que hace.

00:02:00.186 --> 00:02:06.446 align:middle
El sistema de recetas sólo puede realizar un conjunto
específico de operaciones, como añadir nuevos archivos

00:02:06.446 --> 00:02:10.596 align:middle
a tu proyecto y modificar
algunos archivos concretos.

00:02:10.666 --> 00:02:19.036 align:middle
Por ejemplo, esta sección bundles le dice a flex que
añada esta línea a nuestro archivo config/bundles.php.

00:02:20.676 --> 00:02:24.186 align:middle
Si ejecutamos de nuevo git status...

00:02:24.316 --> 00:02:26.366 align:middle
¡sí! Ese archivo ha sido modificado.

00:02:27.416 --> 00:02:35.616 align:middle
Si lo difundimos: Ha añadido dos líneas,
probablemente una para cada una de las dos recetas.

00:02:36.446 --> 00:02:42.086 align:middle
Por cierto, config/bundles.php no es un
archivo en el que tengas que pensar mucho.

00:02:42.556 --> 00:02:46.996 align:middle
Un bundle, en la tierra de
Symfony, es básicamente un plugin.

00:02:46.996 --> 00:02:52.826 align:middle
Así que si instalas un nuevo bundle en tu aplicación,
eso te da nuevas características de Symfony.

00:02:53.436 --> 00:02:58.116 align:middle
Para activar ese bundle, su nombre
tiene que estar en este archivo.

00:02:58.236 --> 00:03:04.066 align:middle
Así que lo primero que hizo la receta para
Twig-bundle, gracias a esta línea de aquí arriba,

00:03:04.396 --> 00:03:08.686 align:middle
fue activarse dentro de bundles.php...

00:03:08.686 --> 00:03:11.456 align:middle
para que no tuviéramos
que hacerlo manualmente.

00:03:12.216 --> 00:03:14.906 align:middle
Las recetas son como una
instalación automática.

00:03:15.816 --> 00:03:20.126 align:middle
La segunda sección del manifiesto
se llama copy-from-recipe.

00:03:20.586 --> 00:03:25.446 align:middle
Esto es sencillo: dice que hay que copiar
los directorios config/ y templates/

00:03:25.446 --> 00:03:27.906 align:middle
de la receta en el proyecto.

00:03:28.776 --> 00:03:29.796 align:middle
Si nos fijamos...

00:03:30.386 --> 00:03:34.456 align:middle
la receta contiene un archivo
config/packages/twig.yaml...

00:03:35.026 --> 00:03:39.146 align:middle
y también un archivo templates/base.html.twig.

00:03:40.106 --> 00:03:42.586 align:middle
De vuelta al terminal,
ejecuta de nuevo git status.

00:03:43.646 --> 00:03:48.646 align:middle
Vemos estos dos archivos en la parte
inferior: config/packages/twig.yaml...

00:03:49.136 --> 00:03:52.796 align:middle
y dentro de templates/, base.html.twig.

00:03:53.506 --> 00:03:54.936 align:middle
Esto me encanta.

00:03:55.256 --> 00:03:58.926 align:middle
Piénsalo: si instalas una herramienta
de plantillas en tu aplicación, vamos a

00:03:59.286 --> 00:04:05.896 align:middle
necesitar alguna configuración en algún lugar que le
diga a esa herramienta de plantillas qué directorio

00:04:05.896 --> 00:04:09.266 align:middle
debe buscar dentro para
encontrar nuestras plantillas.

00:04:09.266 --> 00:04:13.866 align:middle
Ve a ver ese archivo config/packages/twig.yaml.

00:04:14.806 --> 00:04:18.746 align:middle
Hablaremos más de estos archivos
Yaml en el próximo tutorial.

00:04:18.916 --> 00:04:26.186 align:middle
Pero a alto nivel, este archivo controla cómo se
comporta Twig, el motor de plantillas de Symfony.

00:04:26.846 --> 00:04:32.956 align:middle
Y fíjate en la clave default_path
establecida en %kernel.project_dir%/templates.

00:04:33.536 --> 00:04:39.426 align:middle
No te preocupes por esta sintaxis porcentual: es una forma
elegante de referirse a la raíz de nuestro proyecto.

00:04:40.306 --> 00:04:43.626 align:middle
La cuestión es que esta
configuración dice: ¡Hey Twig!

00:04:44.006 --> 00:04:48.326 align:middle
Cuando busques plantillas, búscalas
en el directorio templates/.

00:04:48.516 --> 00:04:53.726 align:middle
Y la receta incluso ha creado ese
directorio con un archivo de diseño dentro.

00:04:54.446 --> 00:04:57.166 align:middle
Lo utilizaremos en unos minutos.

00:04:57.236 --> 00:05:02.236 align:middle
El último archivo no explicado
que se modificó es symfony.lock.

00:05:02.606 --> 00:05:07.826 align:middle
Esto no es importante: sólo lleva la cuenta
de las recetas que se han instalado...

00:05:07.826 --> 00:05:09.186 align:middle
y deberías confirmarlo.

00:05:09.846 --> 00:05:12.216 align:middle
De hecho, deberíamos confirmar todo esto.

00:05:12.606 --> 00:05:18.576 align:middle
La receta puede darnos archivos, pero
luego son nuestros para modificarlos.

00:05:18.576 --> 00:05:19.596 align:middle
Ejecuta: git add .

00:05:20.216 --> 00:05:23.976 align:middle
Entonces: git status Genial.

00:05:24.296 --> 00:05:25.296 align:middle
¡Vamos a confirmarlo!

00:05:25.846 --> 00:05:31.526 align:middle
git commit -m "Adding Twig and its beautiful
recipe" ¡Ya está hecho! Por cierto, es

00:05:32.286 --> 00:05:37.026 align:middle
posible que dentro de unos
meses haya cambios en algunas

00:05:37.026 --> 00:05:38.766 align:middle
de las recetas que has instalado.

00:05:39.106 --> 00:05:43.846 align:middle
Y si los hay, cuando ejecutes
verás un pequeño composer recipes

00:05:44.066 --> 00:05:45.956 align:middle
"actualización disponible" junto a ellos.

00:05:46.746 --> 00:05:51.456 align:middle
Ejecuta para actualizar a la última
versión. composer recipes:update

00:05:52.436 --> 00:05:56.876 align:middle
Ah, y antes de que se me olvide,
además de , symfony/recipes

00:05:57.176 --> 00:06:02.076 align:middle
también hay un repositorio
. symfony/recipes-contrib

00:06:02.586 --> 00:06:05.876 align:middle
Así que las recetas pueden vivir en
cualquiera de estos dos lugares. Las recetas

00:06:06.816 --> 00:06:11.536 align:middle
de están aprobadas por el equipo
central de Symfony, symfony/recipes

00:06:11.796 --> 00:06:14.576 align:middle
por lo que su calidad está
un poco más controlada.

00:06:15.086 --> 00:06:16.956 align:middle
Aparte de eso, no hay ninguna diferencia.

00:06:17.976 --> 00:06:22.826 align:middle
Ahora bien, el sistema de recetas es
tan potente que todos los archivos

00:06:22.826 --> 00:06:25.946 align:middle
de nuestro proyecto se
añadieron mediante una receta

00:06:26.446 --> 00:06:27.116 align:middle
Puedo demostrarlo.

00:06:27.116 --> 00:06:30.916 align:middle
Ve a https://github.com/symfony/skeleton.

00:06:32.106 --> 00:06:36.386 align:middle
Cuando ejecutamos originalmente ese comando
para iniciar nuestro symfony new proyecto,

00:06:36.936 --> 00:06:40.846 align:middle
lo que realmente hizo fue
clonar este repositorio...

00:06:40.956 --> 00:06:43.606 align:middle
y luego ejecutar dentro
de él, composer install

00:06:43.876 --> 00:06:46.756 align:middle
que descarga todo en el directorio . vendor/

00:06:47.356 --> 00:06:51.056 align:middle
Sí Nuestro proyecto -el que vemos aquí-

00:06:51.366 --> 00:06:55.976 align:middle
era originalmente un único
archivo: . composer.json

00:06:56.626 --> 00:06:59.196 align:middle
Pero luego, cuando se instalaron los paquetes,

00:06:59.476 --> 00:07:04.326 align:middle
las recetas de esos paquetes
añadieron todo lo que vemos.

00:07:05.536 --> 00:07:07.146 align:middle
Ejecuta: de nuevo. composer recipes

00:07:08.596 --> 00:07:11.916 align:middle
Una de las recetas es para
algo llamado symfony/console.

00:07:12.306 --> 00:07:18.776 align:middle
Comprueba sus detalles: Y...
composer recipes symfony/console

00:07:18.976 --> 00:07:25.226 align:middle
¡sí! ¡La receta de añadió el archivo
! symfony/console bin/console La receta de

00:07:26.116 --> 00:07:30.876 align:middle
symfony/framework-bundle
-uno de los otros paquetes

00:07:30.876 --> 00:07:34.796 align:middle
que se instaló originalmente-
añadió casi todo lo demás,

00:07:35.146 --> 00:07:38.936 align:middle
incluido el archivo . public/index.php

00:07:39.306 --> 00:07:40.596 align:middle
¿No es genial?

00:07:41.716 --> 00:07:44.356 align:middle
Bien, a continuación: ¡hemos instalado Twig!

00:07:44.746 --> 00:07:48.026 align:middle
¡Así que volvamos al trabajo y utilicémoslo
para renderizar algunas plantillas!

00:07:48.396 --> 00:07:50.126 align:middle
Te va a encantar Twig
