symfony – Instituto FOC | Informática ONLINE | FP Informática ONLINE

Montar un servidor web con Symfony en Docker

Symfony es un framework PHP gratuito para el desarrollo aplicaciones web y es aparte uno de los mas utilizados por los desarrolladores de aplicaciones por la gran escalabilidad que ofrece y por la gran comunidad que la mantiene en todo el mundo.

Si te estás preguntando que necesito para comenzar a desarrollar en Symfony la respuesta es fácil. Cómo mínimo necesitarás:

  • Un entorno servidor de HTTP como Nginx o Apache.
  • Un servidor de BBDD como MySQL, MariaDB, PostgreSQL o SQLite.
  • Lenguaje de programación PHP.
  • Editor de código como VSCode, Notepad++.

Todo ello ha de ir debidamente configurado, por lo que se propone realizarlo usando Docker-Compose.

Ya hemos hablado de Docker en anteriores blogs, por lo que si aún no lo tienes instalado, ahora es el momento.

En tu directorio de trabajo, creamos un archivo llamado docker-compose.yml con el siguiente contenido:

version: ‘2’
 
services:
  mariadb:
    image: docker.io/bitnami/mariadb:10.6
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      – ALLOW_EMPTY_PASSWORD=yes
      – MARIADB_USER=bn_myapp
      – MARIADB_DATABASE=bitnami_myapp
  myapp:
    image: docker.io/bitnami/symfony:6.1
    ports:
      – ‘8000:8000’
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      – ALLOW_EMPTY_PASSWORD=yes
      – SYMFONY_DATABASE_HOST=mariadb
      – SYMFONY_DATABASE_PORT_NUMBER=3306
      – SYMFONY_DATABASE_USER=bn_myapp
      – SYMFONY_DATABASE_NAME=bitnami_myapp
    volumes:
      – ‘./my-project:/app’
    depends_on:
      – mariadb

Una vez guardado este archivo, ejecutamos la orden docker-compose up dentro de la carpeta en donde está ubicado el archivo docker-compose.yml

Docker en ese momento realizará una serie de descargas y finalizada las mismas lanzará el proyecto por defecto de Symfony, pudiendo abrirlo con tu navegador web con la siguiente URL: http://localhost:8000/

El proyecto de Symfony estará disponible en la carpeta my-proyect para comenzar su desarrollo.

Aplicaciones avanzadas con Symfony

 

 [youtube https://youtu.be/_2YVvOpFdWI&w=560&h=315]

 

Al finalizar esta sesión serás capaz de:

  • Desarrollar aplicaciones avanzadas con Symfony
  • Utilizar ORM.

 Contenidos de la sesión:

  • Para poder conseguir los objetivos previstos en la sesión trataremos los siguientes contenidos con un enfoque práctico.
    • Generación de formularios.
    • Doctrine, una solución ORM.

 

¿Cómo instalar Symfony en Windows?

Symfony es un Framework programado en PHP que nos permite agilizar la programación de aplicaciones web a partir de la reutilización de módulos ya programados y de funciones que forman parte de este Framework (ver mas….).

Para trabajar con Symfony lo primero que debemos hacer es instalarlo en nuestra máquina de desarrollo. En este post vamos a ver ¿Cómo instalar Symfony en Windows?.

Lo primero que debemos hacer es instalar algún entorno que nos permita tener un servidor que permita ejecutar php, por ejemplo xampp. No es imprescindible pero nos facilitará trabajar con los proyectos.

Aconsejo también que introduzcas dentro del path de Windows la ruta del fichero php.

Instalar Symfony

Eso nos permitirá poder descargar symfony en la carpeta que deseemos sin tener que seguir la ruta donde esté PHP.

Ahora ya podemos descargar el software Symfony

http://symfony.com/es/download

symfony-instalar

Ahora ya podemos crear proyectos nuevos de Symfony

symfony-instalar-proyecto

También podríamos hacer:

C:\>PHP symfony new my_proyect 2.8

Es importante poner la versión para la que deseamos crear el proyecto nuevo. También sería conveniente crear los nuevos proyectos dentro de la carpeta httdocs para poder navegar por ellos a partir de localhost sin problemas.

Con el proyecto instalado ya podríamos ejecutarlo con:

http://localhost/mi-proyecto

Por último como he indicado podríamos ejecutar un proyecto Symfony sin tener instalado apache.

symfony-instalar-ejecutar

Como se puede ver la instalación es un proceso extremadamente sencillo.

Una vez instalado Symfony y creado el proyecto, tendríamos una estructura como:

G:\xampp\htdocs\symfony\pruebas

Siempre que la carpeta la instalación de symfony estuviese dentro de htdocs del servidor apache.

Ahora ya podemos comenzar a trabajar (en este ejemplo con el proyecto pruebas), con symfony en nuestros nuevos desarrollos.

Mas información en:

http://symfony.es/documentacion/guia-de-instalacion-de-symfony-2-1/

fp-foc

¿Por qué usar Symfony?

Una de las opciones que tenemos a la hora de comenzar a desarrollar una aplicación es la de usar un Framework de desarrollo. Estos nos ayudan en la programación de la misma, aliviando la programación de partes que normalmente son comunes a todas las aplicaciones gracias a la reutilización de módulos y componentes genéricos.

De este modo no tenemos que preocuparnos de la programación común de estos módulos y podemos centrarnos en los desarrollos de las funciones específicas de nuestra aplicación.

Dentro de este grupo, encontramos varios framework entre los que elegir:

·         Symfonyfoc-framework-de-desarrollo

·         Zend

·         YII

·         Laravel

·         CakePHP

·         Codelfniter

·         Etc…

Bien en ese post quiero hablar de uno de ellos, concretamente Symfony. Pero ¿Por qué usar Symfony?

  • En primer lugar hemos de indicar que es un framework construido en lenguaje PHP que hace que sea bastante sencillo tocarle a su código o añadirle código nuevo.
  • Sus componentes desacoplados se usan tanto para aplicaciones PHP como para módulos Drupal, phpBB y eZPubliz y otros…
  • La comunidad de desarrolladores es de las más amplias y como ocurre con los plugin de WordPress, encontraremos códigos por servibles, pero por el contrario encontraremos códigos altamente reutilizables y casi en la mayor parte de los casos gratuitos.
  • En la elaboración de los módulos se siguen unas normas que hacen que el código sea muy estándar y profesional, haciendo muy sencilla la interoperabilidad entre distintas aplicaciones. Tanto es así que permite la creación de software con módulos externos (ORM Doctrine, SwiftMailer, etc).
  • Es importante saber también que detrás de symfony hay una empresa (Sensiolabs), creada hace mas de 12 años que nos da cierta seguridad a la hora de afrontar un proyecto por las perspectivas de permanencia.
  • Symfony aporta todo lo que esperamos de un Framework de desarrollo: velocidad, flexibilidad, componentes reutilizables, etc.

foc-symphony-php

Los elementos comunes que aporta symfony son:

  • La capa de internacionalización que incluye Symfony permite la traducción de los datos y de la interfaz, así como la adaptación local de los contenidos.
  • Los formularios incluyen validación automatizada y relleno automático de datos «repopulation»), lo que asegura la obtención de datos correctos y mejora la experiencia de usuario.
  • La autenticación y la gestión de credenciales simplifican la creación de secciones restringidas y la gestión de la seguridad de usuario.
  • La capa de presentación utiliza plantillas y layouts que pueden ser creados por diseñadores HTML sin ningún tipo de conocimiento del framework. Los helpers incluidos permiten minimizar el código utilizado en la presentación, ya que encapsulan grandes bloques de código en llamadas simples a funciones.
  • Los datos incluyen mecanismos de escape que permiten una mejor protección contra los ataques producidos por datos corruptos.
  • La gestión de la caché reduce el ancho de banda utilizado y la carga del servidor.
  • El sistema de enrutamiento y las URL limpias permiten considerar a las direcciones de las páginas como parte de la interfaz, además de estar optimizadas para los buscadores.
  • El soporte de e-mail incluido y la gestión de APIs permiten a las aplicaciones web interactuar más allá de los navegadores.
  • Los listados son más fáciles de utilizar debido a la paginación automatizada, el filtrado y la ordenación de datos.
  • Los plugins, las factorías (patrón de diseño «Factory») y los eventos otorgan al código del framework una gran flexibilidad.

No obstante antes de comenzar un proyecto, no estaría de más sentarse y ver cual de los Framework se adapta mejor a nuestras necesidades y en base a eso elegir el más adecuado. Normalmente será el tipo de proyecto y los requisitos del mismo el que nos indique qué framework es el más adecuado.

fp-foc