Ver índice de contenidos del libro

23.2. Las librerías de Symfony

23.2.1. Incluyendo Symfony

Una de las principales ventajas de Symfony es que los proyectos son autosuficientes. Todos los archivos que necesita un proyecto para funcionar se encuentran bajo el directorio raíz del proyecto. Además, como Symfony sólo utiliza rutas relativas, puedes mover el directorio del proyecto de un sitio a otro y todo seguirá funcionando correctamente sin necesidad de realizar ningún cambio. Por tanto, no es obligatorio que el directorio de producción sea el mismo que el directorio de la máquina de desarrollo.

La única ruta absoluta que puede que te encuentres está en el archivo config/ProjectConfiguration.class.php, pero ya la arreglamos durante el primer día. Comprueba que ese archivo contenga una ruta relativa al cargador automático de clases de Symfony:

// config/ProjectConfiguration.class.php
require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

23.2.2. Actualizando Symfony

Aunque todo el proyecto se encuentra en un único directorio, actualizar la versión de Symfony es muy sencillo.

Como los creadores de Symfony están continuamente corrigiendo errores y posibles fallos de seguridad, de vez en cuando te tocará actualizar las librerías de Symfony a la última versión disponible en la rama de desarrollo que utilizas. Como puede que ya sepas, todas las versiones de Symfony se mantienen al menos durante un año y en todo ese tiempo nunca se añaden nuevas características, ni siquiera la más mínima. De esta forma, actualizar Symfony a la última versión estable de cada rama de desarrollo siempre es seguro, rápido y fiable.

Actualizar la versión de Symfony es tan sencillo como modificar el contenido del directorio lib/vendor/symfony/. Si has instalado Symfony mediante un archivo comprimido, elimina todos los archivos de ese directorio y copia los contenidos del nuevo archivo comprimido que has descargado.

Si en tu proyecto utilizas Subversion, puedes enlazar ese directorio con la tag de la última versión disponible de Symfony 1.2 en el repositorio:

$ svn propedit svn:externals lib/vendor/
  # symfony http://svn.symfony-project.com/tags/RELEASE_1_2_1/

Actualizar ahora la versión de Symfony es tan sencillo como modificar la tag a la que se enlaza dentro del repositorio.

Otra alternativa consiste en enlazar directamente con la rama o branch 1.2 del repositorio para obtener todos los cambios en tiempo real:

$ svn propedit svn:externals lib/vendor/
  # symfony http://svn.symfony-project.com/branches/1.2/

Con la configuración anterior, cada vez que ejecutas el comando svn up, se instala en el proyecto la última versión disponible de Symfony 1.2.

Te aconsejamos que cada vez que te actualices a una nueva versión borres la cache de Symfony, sobre todo en el entorno de producción:

$ php symfony cc

Nota Si tienes acceso mediante FTP al servidor de producción, puedes emular el efecto del comando symfony cc borrando todos los archivos y directorios que se encuentran en el directorio cache/.

Si quieres, también es posible probar una versión de Symfony sin desinstalar la versión anterior. Si quieres probar una nueva versión de Symfony y poder volver fácilmente a la versión original, instala la nueva versión en otro directorio (por ejemplo lib/vendor/symfony_test), modifica la ruta hasta Symfony en la clase ProjectConfiguration, borra la cache y ya puedes probar la nueva versión. Si algo sale mal, puedes volver a la situación anterior borrando el directorio nuevo y volviendo a modificar la ruta hasta Symfony en la clase ProjectConfiguration.