Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Symfony2 Tutorial: Introducción, instalación y configuración

Sergio Yamuza
  • Escrito por Sergio Yamuza el 26 de Agosto de 2015
  • 4 min de lectura | Backend
Symfony2 Tutorial: Introducción, instalación y configuración

El objetivo de cualquier aplicación es interpretar cada petición entrante y crear una respuesta adecuada. En un desarrollo casi siempre nos vamos a encontrar con las mismas tareas complejas, tales como: seguridad de la aplicación, gestión de usuarios, envío de emails, formularios, etc.

Symfony
proporciona una plataforma completa, con herramientas que te permiten construir tu aplicación. Es un framework potente y flexible , pero a su vez tiene una curva de aprendizaje considerable.

Por ello, en esta serie de posts
veremos cómo podemos desarrollar rápidamente una aplicación con Symfony2 , centrándonos en los conceptos más importantes de la herramienta. Como ejemplo, vamos a crear una pequeña aplicación para la gestión y publicación de contenido, a la que llamaremos my_blog .


¿Qué es Symfony?

Symfony es un framework PHP de tipo full-stack construido con varios componentes independientes creados por el proyecto Symfony. Está diseñado para optimizar el desarrollo de las aplicaciones web basado en el patrón Modelo Vista Controlador. Cabe destacar que no es un framework MVC, sino HTTP.


Su código y el de todos los componentes y librerías que incluye, se publican bajo la
licencia MIT de software libre .

La documentación del proyecto también es libre e incluye varios libros y decenas de tutoriales específicos, estos últimos podemos encontrarlos en el llamado
The Cookbook : soluciones sencillas a problemas comunes.


Según GitHub, Symfony es el
proyecto PHP más activo , lo que garantiza no quedarse nunca atrapado en un proyecto sin actividad. Los componentes de Symfony son tan útiles y están tan probados, que proyectos como Drupal 8 o Laravel están construidos con ellos.


La
conferencia Symfony española llamada deSymfony es el evento PHP más grande del país.


Requerimientos para un proyecto Symfony


- PHP 5.3.9 o superior

- JSON debe estar habilitado

- ctype debe estar habilitado

- Tu php.ini debe tener la configuración para date.timezone

Entorno de desarrollo utilizado en este ejemplo

Como ya hemos comentado, una característica diferenciadora de Symfony es su flexibilidad. Cada desarrollador y cada proyecto determinan sus preferencias y necesidades sobre el sistema operativo, servidor web, o base de datos a utilizar. En este caso, desarrollaremos nuestro ejemplo sobre un entorno LAMP : Linux + Apache + MySQL + PHP.


- [ Ubuntu 15.04 ]

- [ Apache 2.4 ]

- [ MySQL 5.6 ]

- [ PHP 5.6.4 ]


Configurar nuestro servidor web para trabajar con aplicaciones Symfony


Descarga e instalación


La mejor forma de crear un nuevo proyecto Symfony es mediante Symfony installer , una pequeña aplicación PHP que sólo hay que instalar una vez en nuestro equipo y que simplifica considerablemente la creación de nuevos proyectos basados en este framework.


Instalación en Linux y Mac OS X


$ sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony

$ sudo chmod a+x /usr/local/bin/symfony


Luego simplemente ejecutamos el siguiente comando para crear un nuevo proyecto:

$ symfony new my_blog 2.7


Instalación en Windows


c:\> php -r "readfile('http://symfony.com/installer');"  > symfony

Movemos el archivo descargado al directorio donde tenemos nuestros proyectos, y lo ejecutamos como php symfony .


php symfony new my_blog 2.7

Este comando crea un nuevo proyecto a partir de la última versión estable del framework, actualmente 2.7, con el nombre de my_blog .


Configuración

Tras descargar todas las dependencias necesarias, el script nos dará información sobre aquellos aspectos que no están bien configurados y debemos corregir en nuestro equipo antes de continuar.


Symfony integra una herramienta visual para testear esta misma configuración del servidor y de PHP. Siguiendo con nuestro ejemplo, se accede desde:


http://localhost/my_blog/web/config.php

Imagen 0 en Symfony2 Tutorial: Introducción, instalación y configuración


Un problema común al instalar Symfony2 es que los directorios app/cache y app/logs deben tener permiso de escritura, tanto para el servidor web cómo para el usuario de la consola de comandos.

Hay varias formas de configurar este aspecto, en función del sistema que estemos utilizando. En la documentación oficial podemos encontrar todas las posibles soluciones .

En nuestro caso, vamos a dar permisos 777 a las carpetas /app/cache y /app/logs . Esta forma no es la ideal. No está definida en la documentación arriba indicada, pero es la más rápida, y nos permitirá seguir avanzado en este punto de la instalación.

Una vez solventados todos los errores, lo siguiente es configurar los parámetros necesarios para nuestra aplicación Symfony. Para ello, podemos acceder desde el enlace ahora disponible:


Imagen 1 en Symfony2 Tutorial: Introducción, instalación y configuración


Configure your Symfony Application online >


http://localhost/my_blog/web/app_dev.php/_configurator/step/0

Imagen 2 en Symfony2 Tutorial: Introducción, instalación y configuración


Llegados a este punto, es necesario haber creado una base de datos para nuestra aplicación. En nuestro ejemplo, con el mismo nombre que la aplicación: my_blog .

Todos estos parámetros se pueden modificar posteriormente en el archivo parameters.yml, que es autogenerado durante la instalación.

Una vez configurada, ya podemos acceder a la aplicación y visualizar la primera página "real".

Imagen 3 en Symfony2 Tutorial: Introducción, instalación y configuración

En el directorio /web encontramos dos archivos para ejecutar la aplicación: app_dev.php y app.php .


-
app.php


Ejecuta la aplicación Symfony en el entorno de producción.


-
app_dev.php

De igual forma, sirve para ejecutar la aplicación pero, en este caso, en el entorno de desarrollo. Este entorno es con el que trabajamos cuando estamos construyendo la aplicación.


La diferencia visual más notable es que disponemos del *debug toolbar*. Una herramienta del framework que nos aporta información sobre muchos aspectos de le ejecución de la aplicación.


Imagen 4 en Symfony2 Tutorial: Introducción, instalación y configuración


Por otra parte, también está habilitado el modo *debug*, que en caso de producirse algún error, arroja la información por pantalla facilitando la detección del error.

En este entorno también se obvian algunos elementos de la cache, aquellos que son susceptibles de ser modificados constantemente, por lo que la ejecución siempre será más lenta que en un entorno de producción.


Estructura de directorios


Es importante conocer muy bien cómo se organiza el código en una aplicación Symfony. Su estructura puede ser variable, ya que Symfony permite mucha flexibilidad en este aspecto, al igual que en muchos otros. No obstante, la estructura recomendada es la siguiente:


-
app/

Configuración de la aplicación, plantillas y traducciones


-
src/

El código PHP del proyecto. Aquí es donde se programan las funcionalidades de las que dispone el proyecto.


-
vendor/

Dependencias y librerías de terceros utilizadas


-
web/

Este es el directorio web raíz y contiene todos los archivos que se pueden acceder públicamente. Será donde se ejecute la aplicación.

Este post ha sido producido gracias a la colaboración de Sopinet Software

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars