¿No sabes nada del framework Symfony2, y te gustaría leer una guía rápida para aprender cómo utilizarlo, y cómo funciona? ¡Entonces este artículo es para ti!
No me malinterpretes, tarde o temprano tendrás que leer la documentación de Symfony, y deberás practicar mucho si quieres dominarlo. Pero por ahora esta guía debería ser un buen comienzo.
En el primer artículo de esta serie, conocerás Composer, que te ayudará con la instalación y actualización de librerías de terceros.
NOTA Esta serie de tutoriales explica Symfony empezando desde cero y creando todos los archivos a mano para aprender mejor su funcionamiento interno. En la práctica esto no es necesario y existen formas más sencillas de aprender a programar aplicaciones Symfony. Si eres completamente nuevo/a con Symfony, es mejor que leas primero la documentación de Symfony. Si ya conoces Symfony, estos tutoriales son un buen recurso para profundizar en su conocimiento.
Creando el proyecto
Para entender mejor cómo funciona Symfony2, no usaremos la distribución estándar de Symfony, sino que empezaremos desde cero con los archivos estrictamente necesarios.
Creemos nuestro proyecto:
$ mkdir knight
$ cd knight
$ git init
Instalando Composer
Cuando desarrollas un proyecto, lo último que quieres es perder el tiempo reinventando la rueda, así que normalmente utilizas librerías de terceros. Estas librerías tienen su propio ciclo de desarrollo: pueden reparar bugs y lanzar nuevas funcionalidades una vez las has instalado, así que necesitarás actualizarlas de vez en cuando.
Composer facilita esta labor de tal manera que nunca más tendrás que preocuparte por las nuevas versiones. Primero, descárgalo:
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
¡Ya está! Si todos los proyectos fueran tan fáciles de instalar...
Instalando y actualizando Symfony2
En realidad, Symfony2 es sólo un nombre bajo el que se agrupan muchas librerías que podrían ser usadas individualmente (incluso puedes usarlas en otros frameworks, CMS o proyectos, como han hecho Drupal, phpBB, Laravel, eZ Publish, OroCRM o Piwik).
NOTA: Las librerías de Symfony2 se llaman componentes.
Composer se creó para instalar librerías, así que vamos a usarlo:
# instalamos todas las librerías de sf2
$ composer require 'symfony/symfony:~2.5'
Este comando realizará las siguientes tareas:
- Crear un archivo de configuración llamado
composer.json
si no existe ya - Añadir
symfony/symfony: ~2.5
a ese archivo (útil para futuroscomposer install
) - Descargar efectivamente Symfony en el directorio
vendor/symfony/symfony
- Crear un archivo
composer.lock
Más tarde, para actualizar estas dependencias, bastará con ejecutar composer update
.
NOTA: Las librerías de las que depende tu proyecto se llaman dependencias.
El comando recorrerá el archivo composer.lock
para saber qué versión ha sido
instalada (p.e. 2.5.0
) y comprobará si hay una versión más reciente
disponible. Para más información sobre la manera en que Composer maneja las
versiones, ver este artículo de Igor.
Esto significa que puedes ignorar el directorio vendor
:
$ echo '/vendor/*' >> .gitignore
Si un miembro de tu equipo quiere instalar el proyecto, sólo necesitará clonar
tu repositorio y ejecutar composer install
, que realiza las siguientes
tareas:
- Lee el archivo
composer.json
para recoger la lista de dependencias - Lee el archivo
composer.lock
para comprobar la versión instalada por el commiter - Descarga las dependencias con la versión especificada en el archivo lock (aunque haya una nueva versión disponible)
Si una dependencia aparece en el archivo composer.json
pero no en el
composer.lock
, Composer descargará la versión coincidente más reciente que
esté disponible y la añadirá al lock.
¡Esto significa que todo el mundo tendrá la misma versión instalada! Si sólo
permites a una persona ejecutar composer update
, está garantizado.
Autoloading
Gracias a que Composer sabe dónde está cada clase de cada librería instalada, ofrece una magnífica funcionalidad: autoloading o carga automática de clases.
Para resumir, cada vez que una clase es instanciada, Composer incluye automáticamente el archivo en el que fue declarada.
Tu propio código también puede beneficiarse de ello. Necesitas editar el
archivo composer.json
:
{
"require": {
"symfony/symfony": "~2.5"
},
"autoload": {
"psr-4": {
"": "src/"
}
}
}
Y ejecutar el siguiente comando para que se contemplen los cambios:
$ composer update
Esta configuración le dice a Composer que vamos a seguir el estándar
PSR-4 y que vamos a poner nuestro código
en el directorio src
.
NOTA: PSR requiere que tu código siga algunas convenciones:
- Crea una clase por cada archivo
- Dale el mismo nombre a tu archivo y tu clase
- Usa la ruta de la clase como namespace
Por ejemplo: el archivo src/AppBundle/Controller/DefaultController.php
contiene una clase llamada DefaultController
localizada en el namespace AppBundle\Controller
.
No te preocupes demasiado por esto ahora.
Conclusión
Y esto es todo lo que necesitas saber sobre Composer por ahora. Hagamos un commit de nuestro trabajo:
$ git add -A
$ git commit -m 'Symfony2 instalado'
Espero que te haya servido, ¡permanece atento a los próximos artículos!
Sobre el autor
Este artículo fue publicado originalmente por Loïc Chardonnet y ha sido traducido con permiso por Manuel Gómez.