Implementación de un proyecto Symfony
Las herramientas necesarias
1. Introducción
Antes de embarcarse en la creación de un proyecto Symfony, es importante equiparse. Se necesitan una serie de herramientas para configurar el proyecto y desarrollarlo. A continuación, se detalla su correcta instalación. Algunas de estas herramientas son indispensables para cualquier desarrollador de Symfony, mientras que otras son opcionales o tienen alternativas. Es esencial entender su papel e instalarlas correctamente antes de ir más allá en la construcción de su proyecto.
2. Symfony: Un proyecto PHP
El primer conjunto de herramientas que se debe instalar permite sentar las bases. Ante todo, un proyecto Symfony es un proyecto PHP con todo lo que esto implica: servidor web con PHP, base de datos, etc.
Por lo tanto, es necesario prever la instalación de dicho entorno, incluso si, como se mencionará más adelante, el instalador de Symfony puede sustituir al servidor web. La instalación de un servidor web real con PHP será esencial en un momento u otro, especialmente para la implementación de pruebas de software, o incluso para ciertas funcionalidades de seguridad.
Para disponer de una instalación funcional de este tipo de entorno, hay dos soluciones disponibles:
-
Instalación separada de un servidor web, PHP y una base de datos relacional.
-
Instalación de un paquete listo para usar que proporciona estos productos.
Por supuesto, el primer enfoque requiere un conocimiento profundo del sistema operativo elegido, la red y el funcionamiento de estos productos. El segundo es mucho más asequible desde el punto de vista técnico y sobre todo más rápido, especialmente en entornos Windows.
Para trabajar con Symfony 5, se requiere PHP versión 2.5 o superior.
a. Recomendación de instalación
En este libro vamos a utilizar principalmente Apache HTTP Server como servidor web y MySQL como servidor de base de datos, ya que estos son los productos que normalmente más se asocian con el lenguaje PHP. Sin embargo, en el curso de los diversos capítulos veremos que hay alternativas posibles.
Para poder disponer de una instalación rápidamente funcional, recomendamos las siguientes opciones: instalar los productos individualmente si está trabajando en Linux (forman parte de los paquetes de instalación proporcionados con su distribución)...
Crear un proyecto Symfony
1. Requisitos previos
Como se mencionó anteriormente, para crear un proyecto Symfony 5, al menos debe tener una instalación de PHP en su versión 2.5.
Presentaremos varias técnicas de creación de proyectos utilizando el instalador de Symfony o la instalación a través de Composer. Ambas soluciones son relevantes para crear un proyecto, pero una instalación por parte del instalador no requiere que haya instalado Composer para otras tareas posteriores.
2. Creación a través del instalador de Symfony
El instalador de Symfony se utiliza en la línea de comandos en un terminal en Linux o macOS y en una línea de comandos de sistema en Windows. Antes de crear un nuevo proyecto, puede solicitar que se comprueben los requisitos previos ejecutando el comando:
symfony check:requirements
El resultado que se muestra en la pantalla puede indicar errores en la configuración de PHP, que se deberán corregir antes de continuar. Además de los errores, también puede haber recomendaciones para las optimizaciones realizadas por la herramienta, pero, siempre que el resultado sea «OK», puede continuar.
La creación del proyecto se realizará gracias al comando:
symfony new mi_proyecto --version=5.4 --webapp
De manera más general, el comando:
symfony new mi_proyecto --version=lts --webapp
permite crear un proyecto basado en la última versión LTS.
Este comando crea la estructura del proyecto e instala Symfony 5.4 en la carpeta mi_proyecto. Observará que el comando symfony usa Composer de una manera subyacente. También observará que se ha inicializado un repositorio Git para este proyecto, que le permite administrar el código fuente y sus versiones.
3. Creación a través de Composer
Para inicializar un proyecto Symfony, usamos el comando create-project:
composer create-project symfony/website-skeleton mi_proyecto 5.4.*
Este comando es mucho más detallado durante la creación del proyecto, ya que muestra la lista completa de dependencias Composer instaladas. También muestra consejos al final de la creación del proyecto. A diferencia del instalador Symfony, no crea un repositorio Git para el proyecto, pero sí lo sugiere.
El final de la vista generada por el comando create-project de Composer y los siguientes pasos para comenzar...
Estructura de la aplicación
1. Árbol del proyecto
Una aplicación Symfony contiene diferentes directorios y cada uno de ellos tiene un rol específico.
-
bin: esta carpeta contiene los ejecutables de su proyecto o sus dependencias. En especial, contiene la consola Symfony.
-
Config: este directorio contiene principalmente los archivos de configuración de la aplicación.
-
migrations: cuando diseña las diferentes clases de objetos que se conservarán en la base de datos, las herramientas de Symfony (la consola) generarán scripts PHP en este directorio, lo que le permitirá actualizar el esquema de la base de datos.
-
public: esta carpeta incluye todos los recursos públicos. Por lo tanto, estos archivos son accesibles directamente desde la web a través de la URL http://mi_proyecto.local/<nombre_del_archivo>. Los archivos en este directorio a menudo son estáticos (hojas de estilo CSS, archivos de script JavaScript, etc.), con una excepción: el controlador front (consulte el capítulo Arquitectura del framework - Arquitectura de Symfony), es decir, el archivo index.php.
-
src: este directorio contiene sus clases de negocio, controladores, etc.; en pocas palabras, es el corazón de su proyecto. En este archivo es donde se lleva a cabo casi todo el desarrollo.
-
templates: la ubicación de almacenamiento para las plantillas y los layouts Twig. Las templates son las pantallas (o incluso vistas) de su aplicación, que mezclan código HTML y lenguaje Twig para la representación dinámica de pantallas.
-
test: las diversas pruebas de software, unitarias, de integración o funcionales se almacenarán en este directorio para que PHPUnit las pueda ejecutar.
-
translations: si desea internacionalizar su aplicación, debe proporcionar archivos de idioma (o archivos de traducción) para cada idioma que esta admita. Dichos archivos deben residir en este directorio.
-
var: esta carpeta contiene la memoria caché y los logs o registros de actividad (historiales de eventos) de la aplicación.
-
vendor: este directorio fue generado por Composer y contiene todos los paquetes (librerías o bundles) de los que depende su proyecto. Puede omitir esta carpeta, pero no debe versionarla bajo ninguna circunstancia porque Composer es responsable de generarla para cada instalación/despliegue...