Instalación de Symfony y creación del proyecto

6/17

Lectura

Inicializando el proyecto

Ahora que tenemos las herramientas que necesitamos estamos en condiciones de crear nuestro primer proyecto Symfony.

Mujer celebrando

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:

Pantalla de bienvenida a Symfony

¡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:

Terminal con opciones después de ejecutar el comando
A través de este script podrás realizar una gran cantidad de tareas sumamente importantes a la hora de desarrollar tu aplicación: tenla muy presente.

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 ~/codeen 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.

Aportes 23

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Noooooooooooo que mal… Este era el curso que mas había esperado, y… En mi humilde opinión esta horrible !!!

CREA UN ENTORNO LOCAL - MUY FÁCIL
.
Se que no es con maquina virtual, pero os traigo una manera mas sencilla y mas rápida de crear un entorno de desarrollo local, que es mas que suficiente para aprender.
.
Para la instalación es necesario tener previamente:
----------Cualquier paquete como XAMPP, WAMP, etc
----------Php 7.^
----------Composer
.
INSTRUCCIONES
.
Paso1- Descargar el cliente de Symfony(https://symfony.com/download)
Paso1.1- Podemos comprobar si nuestro sistema tiene todo lo necesario para crear un nuevo proyecto con el comando (symfony check:requirements)
.
Paso2- Desde el cmd nos ubicamos en nuestra ruta xxx, htdocs, etc y ejecutamos el siguiente comando(composer create-project symfony/website-skeleton my_project_name)
.
Paso3- Ya tendremos el esqueleto base de Symfony.
.
Paso4- Ahora toca revisar nuestro servidor local. A la hora de hacerlo me surgió un problema y es que symfony apuntaba a una versión errónea de PHP. Esto lo solucione de la siguiente forma
Paso4.1 - Primero ejecutamos el comando (symfony local:php:list) que nos devolverá una lista de las versiones de php en nuestro sistema, y aparecerá coloreada en blanco la que esta usando symfony.
Paso4.2- Para hacer que apunte otra versión utilizamos el comando (echo 7 > .php-version). Lo que haces con este comando es indicarle que use cualquier versión de la 7.0.0 para arriba.
.
Paso5- En este punto ya podemos ejecutar el comando para levantar nuestro servidor local (symfony server:start). En este momento nuestro servidor se inicia y nos devuelve la url para acceder a nuestra aplicación. También podemos hacer que se abra directamente en nuestro navegador por defecto con el comando (symfony open:local).
.
Si os encontráis con esto significa que ya estáis listos para empezar a programar.(https://prnt.sc/tpftf7)
.
Siento que sea tan largo pero espero que le pueda ser útil a quienes le de fallos continuamente usando vagant y homestead(yo incluido).

Hay varias cosas que no se explican en el curso. encontré este tutorial y me sirvió demasiado para configurar la maquina virtual (explica mejor que es vagrant y homestead) espero les sirva:

https://simplecodetips.wordpress.com/2018/09/13/setup-con-laravel-homestead-y-vagrant-en-ubuntu-18-04/

Yo decidí instalar directamente en mi PC con Windows 10, trabajo con
XAMPP Apache + MariaDB + PHP + Perl
Instalé Symfony 5 y todo perfecto sin ningún problema.
En el siguiente video de Youtube explican como instalar Symfony 5 en Windows 10.

Hola a todos!, he creado un repositorio en GitHub con todo lo neceseario para arrancar el proyecto con Docker (docker-compose).
Este repositorio tiene los servicios de: PHP(Symfony) + Nginx + MySQL, el esqueleto (Symfony) del proyecto ya está montado además la conexión a la BBDD también, espero que pueda ayudarles:
https://github.com/JesusCH92/symfony-dockerizado.git

Instale Symfony en un directorio especial, luego por medio de la instalación de php a nivel de sistema levanto un servidor interno en el directorio de la instalación por medio de la terminal.

php -S localhost:80 -t public

El anterior comando levanta un servidor local en el puerto 80, este puede ser sustituido por 8080 u otro si se presenta problemas luego se le especifica la carpeta del directorio de public.

homestead ssh no me funciono

¡Genial! Yo logré instalar symfony tal cual como lo explican aquí pero lo hice en mi máquina real usando apache en ubuntu, simplemnete cree un host virtual y uso mi url personalizada: curso-symfony.test jaja

Por cierto, ele ejecutor de comandos se ve muy bueno y es muy idéntico a Laravel, de hecho se que Laravel está basado en Symfony así que no me extrañaría que le hayan agregado comandos a este ejecutor de comandos jaja, en todo caso, con Laravel se llama artisan y se ejecutan como: php artisan

Lo tengo

Me dió un error en el archivo yml, que no reconocía el type: "symfony4"
Busqué en la documentación de symfony y vi que el type lo colocaba después de
sites:
- map: symfony-demo.test
to: /home/vagrant/projects/symfony_demo/public
type: symfony4

lo coloqué así y ya corrió todo.
Si alguien sabe porqué no funciona de la manera en la que puso el profe me avisa porfa.

Hasta ahora, muy flojo, esperemos que mejore el curso.

que curso tan malo, para esto me voy a ver articulos sobre symfony en medium, esos son gratis

Tuve unos errores pero al final los resolví al instalar global-mente symfony

Me dice que no reconoce el Composer
Hay que descargar Composer e instalarlo o ya viene en la maquina virtual y si es así como accedo a esa MV.

Hay que crear una nueva carpeta llamada /code ??
No esta bien explicado, siento que este curso me esta liando más de lo que me ayuda.

<h1>Me aparece este error</h1>

![](

Por Homestead no me quedo, me quedo por Laragon por si alguien tiene fallas con laragon es mas sencillo, almenos con windows

Está desordenado el contenido, tuve que buscar en la documentación de Laravel Homestead para saber cómo terminar de configurar mi entorno (Windows). El tutorial parece estar enforcado más a usuarios UNIX.

Para poder hacer el

cd ~/code
ls -l

Tuve que buscar como acceder a la máquina virtual a través de SSH. Esto recién se explica al final de esta clase. Como digo, el contenido está desordenado.

Hola,
tengo este nuevo error,
Fatal Error: composer.lock was created for PHP version 7.4 or higher but the current PHP version is 7.3.17.
ayuda ,please

hola, al ir a la url me dice que no puede acceder al sitio web.
El archivo host tiene la ip correcta.
Alguna sugerencia??

una pregunta y se yo deseo descargar otra version de Symfony ejemplo: la version 1.4, ¿Como seria el comando?

Por ahora es como Laravel y Homestead. Genial!

El aprendizaje es continúo, el uso de entornos virtuales permite aprender, errar y volver a empezar.

Prefiero trabajarlo directo en la pc, y ver que problemas genera!!!