WEBVTT

00:00:01.146 --> 00:00:06.496 align:middle
Vamos a conocer nuestro nuevo proyecto
porque mi objetivo final es que

00:00:06.496 --> 00:00:09.076 align:middle
entiendas realmente cómo funcionan las cosas.

00:00:09.786 --> 00:00:13.136 align:middle
Como he mencionado, todavía
no hay mucho aquí...

00:00:13.216 --> 00:00:14.906 align:middle
unos 15 archivos.

00:00:15.116 --> 00:00:20.756 align:middle
Y realmente sólo hay tres directorios en
los que tenemos que pensar o preocuparnos.

00:00:20.756 --> 00:00:23.396 align:middle
El primero es public/...

00:00:23.546 --> 00:00:27.186 align:middle
y es sencillo: es la raíz del documento. En

00:00:27.826 --> 00:00:33.146 align:middle
otras palabras, si necesitas que un archivo sea
accesible públicamente -como un archivo de imagen

00:00:33.146 --> 00:00:37.016 align:middle
o un archivo CSS- tiene que
vivir dentro de public/.

00:00:37.936 --> 00:00:42.026 align:middle
Ahora mismo, esto contiene
exactamente un archivo: index.php,

00:00:42.576 --> 00:00:45.016 align:middle
que se llama "controlador frontal".

00:00:45.186 --> 00:00:51.726 align:middle
Ooo. Es una palabra elegante que significa que,
independientemente de la URL a la que vaya el usuario,

00:00:52.106 --> 00:00:55.536 align:middle
éste es el script que
siempre se ejecuta primero.

00:00:56.216 --> 00:00:59.736 align:middle
Su trabajo es arrancar Symfony
y ejecutar nuestra aplicación.

00:01:00.216 --> 00:01:06.536 align:middle
Y ahora que lo hemos visto, probablemente no
tengamos que pensar ni abrirlo nunca más.

00:01:07.096 --> 00:01:11.516 align:middle
Y, realmente, aparte de poner
archivos CSS o de imagen en public/,

00:01:11.746 --> 00:01:16.326 align:middle
no es un directorio con el que
vayas a tratar en el día a día.

00:01:16.516 --> 00:01:17.216 align:middle
Lo que significa...

00:01:17.416 --> 00:01:18.956 align:middle
¡que he mentido un poco!

00:01:19.476 --> 00:01:25.156 align:middle
En realidad, sólo hay dos directorios en
los que debemos pensar: config/ y src/.

00:01:25.236 --> 00:01:27.926 align:middle
El directorio config/ contiene...

00:01:28.156 --> 00:01:30.296 align:middle
¡gatos! Ya me gustaría.

00:01:30.706 --> 00:01:32.696 align:middle
No, contiene archivos de configuración.

00:01:32.926 --> 00:01:37.706 align:middle
Y src/ contiene el 100% de tus clases PHP.

00:01:38.136 --> 00:01:42.336 align:middle
Pasaremos el 95% de nuestro
tiempo dentro del directorio src/.

00:01:43.206 --> 00:01:45.876 align:middle
Bien... ¿dónde está "Symfony"?

00:01:45.876 --> 00:01:49.806 align:middle
Nuestro proyecto comenzó
con un archivo composer.json.

00:01:50.406 --> 00:01:54.956 align:middle
En él se enumeran todas las librerías de
terceros que necesita nuestra aplicación.

00:01:55.546 --> 00:02:00.056 align:middle
El comando "symfony new" que ejecutamos
en secreto utilizó "composer" - que es

00:02:00.366 --> 00:02:04.426 align:middle
el gestor de paquetes de PHP -
para instalar estas bibli otecas...

00:02:05.106 --> 00:02:07.606 align:middle
que en realidad es sólo una forma de decir

00:02:07.606 --> 00:02:12.256 align:middle
que Composer descargó estas
bibliotecas en el directorio vendor/.

00:02:12.366 --> 00:02:18.416 align:middle
El propio Symfony es en realidad una colección
de un montón de pequeñas bibliotecas

00:02:18.576 --> 00:02:20.636 align:middle
que resuelven cada una un problema específico.

00:02:21.746 --> 00:02:27.766 align:middle
En el directorio vendor/symfony/,
parece que ya tenemos unas 25 de ellas.

00:02:28.376 --> 00:02:32.536 align:middle
Técnicamente, nuestra aplicación
sólo requiere estos seis paquetes,

00:02:32.706 --> 00:02:36.286 align:middle
pero algunos de ellos
requieren otros paquetes...

00:02:36.456 --> 00:02:40.066 align:middle
y Composer es lo suficientemente inteligente
como para descargar todo lo que necesitamos. De

00:02:41.156 --> 00:02:48.326 align:middle
todos modos, "Symfony", o en realidad, un conjunto de
bibliotecas de Symfony, vive en el directorio vendor/

00:02:48.576 --> 00:02:52.556 align:middle
y nuestra nueva aplicación aprovecha
ese código para hacer su trabajo.

00:02:52.556 --> 00:02:58.016 align:middle
Más adelante hablaremos de Composer y de
la instalación de paquetes de terceros.

00:02:58.546 --> 00:03:03.026 align:middle
Pero en su mayor parte, vendor/
es otro directorio del que...

00:03:03.366 --> 00:03:05.266 align:middle
no tenemos que preocuparnos

00:03:06.016 --> 00:03:07.566 align:middle
Entonces, ¿qué queda?

00:03:08.216 --> 00:03:11.156 align:middle
Bueno, bin/ contiene exactamente un ar chivo...

00:03:11.646 --> 00:03:14.156 align:middle
y siempre contendrá sólo este archivo.

00:03:14.946 --> 00:03:17.716 align:middle
Hablaremos de lo que hace
bin/console un poco más tarde.

00:03:18.186 --> 00:03:21.746 align:middle
Y el directorio var/ contiene
archivos de caché y de registro.

00:03:22.306 --> 00:03:24.096 align:middle
Esos archivos son importantes...

00:03:24.286 --> 00:03:28.876 align:middle
pero nunca necesitaremos
mirar o pensar en esas cosas.

00:03:28.916 --> 00:03:35.556 align:middle
Sí, vamos a vivir casi exclusivamente
dentro de los directorios config/ y src/.

00:03:36.536 --> 00:03:39.946 align:middle
Bien, una última tarea
antes de empezar a codificar.

00:03:40.066 --> 00:03:45.076 align:middle
Siéntete libre de utilizar el editor
de código que quieras: PhpStorm,

00:03:45.226 --> 00:03:48.786 align:middle
VS Code, code carrier pigeon, lo que sea.

00:03:49.046 --> 00:03:51.586 align:middle
Pero recomiendo encarecidamente PhpStorm.

00:03:52.226 --> 00:03:54.726 align:middle
Hace que desarrollar con
Symfony sea un sueño...

00:03:54.986 --> 00:03:57.646 align:middle
¡y ni siquiera me pagan por decir eso!

00:03:57.816 --> 00:04:02.436 align:middle
Aunque, si quieren empezar a pagarme,
acepto el pago en stroopwafels.

00:04:03.206 --> 00:04:09.006 align:middle
Parte de lo que hace que PhpStorm sea tan bueno es un
plugin diseñado específicamente para Symfony. Voy a

00:04:09.886 --> 00:04:15.556 align:middle
mis preferencias de PhpStorm
y, dentro, busco Plugins,

00:04:16.286 --> 00:04:18.886 align:middle
Marketplace y luego busco Symfony.

00:04:18.886 --> 00:04:22.066 align:middle
Aquí está.

00:04:22.696 --> 00:04:24.676 align:middle
Este plugin es increíble....

00:04:24.876 --> 00:04:30.416 align:middle
¡que puedes ver porque ha sido
descargado 5,4 millones de veces!

00:04:30.786 --> 00:04:35.656 align:middle
Añade toneladas de locas funciones de
autocompletado que son específicas de Symfony.

00:04:35.656 --> 00:04:39.096 align:middle
Si aún no lo tienes, instálalo.

00:04:39.836 --> 00:04:44.406 align:middle
Una vez instalado, vuelve a
Configuración y busca aquí arriba

00:04:44.406 --> 00:04:47.426 align:middle
"Symfony" para encontrar
una nueva área de Symfony.

00:04:48.576 --> 00:04:53.386 align:middle
El único truco de este plugin es que
tienes que activarlo para cada proyecto.

00:04:54.076 --> 00:04:55.916 align:middle
Así que haz clic en esa casilla.

00:04:56.786 --> 00:05:01.276 align:middle
Además, no es demasiado importante,
pero cambia el directorio web a public/.

00:05:03.736 --> 00:05:05.176 align:middle
Pulsa Ok y...

00:05:05.426 --> 00:05:07.036 align:middle
¡estamos listos!

00:05:07.606 --> 00:05:12.746 align:middle
Vamos a dar vida a nuestra aplicación creando
nuestra primera página a continuación
