Symfony 1.0, la guía definitiva

3.2. Instalando las librerías de Symfony

Al desarrollar aplicaciones con Symfony, es probable que tengas que instalarlo dos veces: una para el entorno de desarrollo y otra para el servidor de producción (a no ser que el servicio de hosting que utilices tenga Symfony preinstalado). En cada uno de los servidores lo lógico es evitar duplicidades juntando todos los archivos de Symfony en un único directorio, independientemente de que desarrolles una o varias aplicaciones.

Como el desarrollo de Symfony evoluciona rápidamente, es posible que esté disponible una nueva versión estable del framework unos días después de la primera instalación. La actualización del framework es algo a tener muy en cuenta, por lo que se trata de otra razón de peso para juntar en un único directorio todas las librerías de Symfony.

Existen dos alternativas para instalar las librerías necesarias para el desarrollo de las aplicaciones:

  • La instalación que utiliza PEAR es la recomendada para la mayoría de usuarios. Con este método, la instalación es bastante sencilla, además de ser fácil de compartir y de actualizar.
  • La instalación que utiliza Subversion (SVN) solamente se recomienda para los programadores de PHP más avanzados y es el método con el que pueden obtener los últimos parches, pueden añadir sus propias características al framework y pueden colaborar con el proyecto Symfony.

Symfony integra algunos paquetes externos:

  • pake es una utilidad para la línea de comandos.
  • lime es una utilidad para las pruebas unitarias.
  • Creole es un sistema de abstracción de la base de datos. Se trata de un sistema similar a los PHP Data Objects (PDO) y proporciona una interfaz entre el código PHP y el código SQL de la base de datos, permitiendo cambiar fácilmente de sistema gestor de bases de datos.
  • Propel se utiliza para el ORM. Proporciona persistencia para los objetos y un servicio de consultas.
  • Phing es una utilidad que emplea Propel para generar las clases del modelo.

Pake y lime han sido desarrollados por el equipo de Symfony. Creole, Propel y Phing han sido creados por otros equipos de desarrollo y se publican bajo la licencia GNU Lesser Public General License (LGPL). Todos estos paquetes están incluidos en Symfony.

3.2.1. Instalando Symfony con PEAR

El paquete PEAR de Symfony incluye las librerías propias de Symfony y todas sus dependencias. Además, también contiene un script que permite extender la línea de comandos del sistema para que funcione el comando symfony.

Para instalar Symfony de esta manera, en primer lugar se debe añadir el canal Symfony a PEAR mediante este comando:

> pear channel-discover pear.symfony-project.com

Para comprobar las librerías disponibles en ese canal, se puede ejecutar lo siguiente:

> pear remote-list -c symfony

Una vez añadido el canal, ya es posible instalar la última versión estable de Symfony mediante el siguiente comando:

> pear install symfony/symfony

downloading symfony-1.0.0.tgz ...
Starting to download symfony-1.0.0.tgz (1,283,270 bytes)
.................................................................
.................................................................
.............done: 1,283,270 bytes
install ok: channel://pear.symfony-project.com/symfony-1.0.0

Y la instalación ya ha terminado. Los archivos y las utilidades de línea de comandos de Symfony ya se han instalado. Para asegurarte de que se ha instalado correctamente, prueba a ejecutar el comando symfony para que te muestre la versión de Symfony que se encuentra instalada:

> symfony -V

symfony version 1.0.0

Nota Si prefieres instalar la versión beta más reciente, que tiene las últimas correcciones de errores y las últimas mejoras, puedes ejecutar el comando pear install symfony/symfony-beta. Sin embargo, las versiones beta no son estables y por tanto no se recomiendan para los servidores de producción.

Después de la instalación, las librerías de Symfony se encuentran en los siguientes directorios:

  • $php_dir/symfony/ contiene las principales librerías.
  • $data_dir/symfony/ contiene la estructura básica de las aplicaciones Symfony; los módulos por defecto; y la configuración, datos para i18 (internacionalización), etc.
  • $doc_dir/symfony/ contiene la documentación.
  • $test_dir/symfony/ contiene las pruebas unitarias.

Las variables que acaban en _dir se definen en la configuración de PEAR. Para ver sus valores, puedes ejecutar el siguiente comando:

> pear config-show

3.2.2. Obtener Symfony mediante el repositorio SVN

En los servidores de producción, o cuando no es posible utilizar PEAR, se puede descargar la última versión de las librerías Symfony directamente desde el repositorio Subversion que utiliza Symfony:

> mkdir /ruta/a/symfony
> cd /ruta/a/symfony
> svn checkout http://svn.symfony-project.com/tags/RELEASE_1_0_0/ .

El comando symfony, que solamente está disponible en las instalaciones PEAR, en realidad es una llamada al script que se encuentra en /ruta/a/symfony/data/bin/symfony. Por tanto, en una instalación realizada con SVN, el comando symfony -V es equivalente a:

> php /ruta/a/symfony/data/bin/symfony -V

symfony version 1.0.0

Probablemente ya tenías creado algún proyecto de Symfony antes de realizar la instalación mediante SVN. En este caso, es necesario modificar el valor de 2 variables en el archivo de configuración config/config.php del proyecto:

<?php

$sf_symfony_lib_dir  = '/ruta/a/symfony/lib';
$sf_symfony_data_dir = '/ruta/a/symfony/data';

El Capítulo 19 muestra otras opciones para enlazar un proyecto con una instalación de Symfony, incluyendo el uso de enlaces simbólicos y rutas relativas.

Truco Otra forma de instalar Symfony es bajar directamente el paquete de PEAR (http://pear.symfony-project.com/get/symfony-1.0.0.tgz) y descomprimirlo en algún directorio. El resultado de esta instalación es el mismo que si se instala mediante el repositorio de Subversion.