Creación y Configuración de un Proyecto Symfony con Homestead
Clase 6 de 17 • Curso de Symfony Framework
Inicializando el proyecto
Ahora que tenemos las herramientas que necesitamos estamos en condiciones de crear nuestro primer proyecto Symfony.
Para ello vamos a valernos de nuestro viejo y querido composer.
Abre una terminal y ejecuta los siguientes comandos:
cd ~ composer create-project symfony/website-skeleton code
¡Excelente! Tu proyecto está creado :)
Explorando el proyecto
Lo primero que querrás hacer será verificar que todo está en su lugar, ¿cierto? ¡Buena idea!
Abre un navegador y dirígete a [http://homestead.test](http://homestead.test)
Si todo salió bien deberías ver una pantalla como esta:
¡Felicitaciones! Has creado tu primer proyecto Symfony en una máquina virtual Homestead.
Ahora que está todo en su lugar… ¿qué tal si miramos un poco por detrás de la cortina?
Lo primero que debes comprender es cómo está conectada la máquina virtual con tu propia computadora.
Es realmente simple, si te fijas en la definición de Homestead.yaml
encontrarás:
folders: - map: ~/code to: /home/vagrant/code
Esta definición indica que tu directorio local ~/code
(el de tu computadora real) está mapeado al directorio virtual /home/vagrant/code.
Esto significa que todo lo que escribas en tu directorio ~/code
será replicado en forma automática en el directorio /home/vagrant/code
de la máquina virtual y viceversa.
Esto permite que los cambios que realices en tu editor de código se vean reflejados en tu servidor web en forma inmediata (Sin necesidad de subirlos vía FTP ni nada por el estilo).
Recuerda que el servidor web (Nginx en este caso) está alojado en tu máquina virtual y tú lo estás accediendo desde tu navegador a través de la URL [http://homestead.test](http://homestead.test)
Pues bien, te invito ahora a que ejecutes los siguientes comandos:
cd ~/code ls -l
Ahí podrás ver todos los directorios y archivos que ha creado el instalador de Symfony.
Repasémoslos brevemente:
bin/
- Aquí encontrarás algunas herramientas útiles que veremos más adelante.
config/
- Este directorio contendrá la configuración de tu aplicación y los paquetes que utilices.
public/
- Aquí se encontrará toda la información a la que tiene acceso cualquier visitante de tu sitio.
src/
- Este es probablemente el directorio más importante: aquí estará el código de tu aplicación.
templates/
- Este directorio también contendrá código, pero sólo el referente a las vistas.
tests/
- Aquí residirán los scripts que crearás para realizar las pruebas de tu aplicación.
translations/
- Aquí se almacenarán los archivos de traducción que permitirán que tu aplicación pueda ser utilizada por personas de diferentes países.
var/
- Este directorio es interno. El propio framework se encargará de administrarlo.
vendor/
- Aquí se instalarán las dependencias que agregues usando composer.
¡Perfecto! Ya estamos casi listos para empezar a codear :)
En la clase 2 te había adelantado que una de las ventajas de usar Symfony es su capacidad para generar código por tí.
Para lograr este objetivo el framework cuenta con una poderosa herramienta: el ejecutor de comandos.
Para accederlo simplemente escribe en tu terminal:
php bin/console
Verás una salida similar a esta:
Hasta ahora todos los comandos que hemos usado los hemos ejecutado en la computadora física. Sin embargo, el servidor web, la base de datos y todo lo demás que conforma el entorno de nuestra aplicación está en la máquina virtual… es tiempo de ir a donde nuestro código vive.
Dado que estamos trabajando con Homestead nos basta con ejecutar:
homestead ssh
Y estaremos dentro de la Matrix… quiero decir, de la máquina virtual :)
Una vez dentro, muévete al directorio /home/vagrant/code
usando:
cd /home/vagrant/code
Y luego, si usas el comando ls
verás exactamente el mismo contenido que hay en ~/code
en tu máquina física. Precisamente de éso se trata el mapeo que figura en tu archivo Homestead.yaml.
Y ahora sí, es momento de comenzar a escribir código.
¿Qué mejor que arrancar implementando nuestro modelo de datos?
Acompáñame a la siguiente clase y aprende cómo usar Doctrine en tus proyectos.