Symfony 1.0, la guía definitiva

18.5. Desactivando las características que no se utilizan

La configuración por defecto de Symfony activa las características más habituales para las aplicaciones web. No obstante, si no se necesitan todas estas características, es posible desactivarlas para ahorrar el tiempo requerido en inicializarlas durante cada petición.

Si por ejemplo una aplicación no utiliza el mecanismo de las sesiones o si se quiere realizar la gestión de sesiones manualmente, se debería establecer la opción auto_start a false bajo la clave storage del archivo de configuración factories.yml, como muestra el listado 18-19.

Listado 18-19 - Desactivando las sesiones, en miaplicacion/config/factories.yml

all:
  storage:
    class: sfSessionStorage
    param:
      auto_start: false

Lo mismo se puede aplicar a la base de datos (como se explicó en la sección anterior "Optimizando el modelo") y al mecanismo de escape (que se vio en el capítulo 7). Si la aplicación no los utiliza, se pueden desactivar para conseguir una ligera mejora en el rendimiento de la aplicación. Estas dos opciones se configuran en el archivo settings.yml (ver listado 18-20).

Listado 18-20 - Desactivando algunas características, en miaplicacion/config/settings.yml

all:
  .settings:
    use_database:      off    # Base de datos y modelo
    escaping_strategy: off    # Mecanismo de escape

Las opciones de seguridad y las de los atributos de tipo flash (ver capítulo 6) se pueden desactivar en el archivo filters.yml, tal y como se muestra en el listado 18-21.

Listado 18-21 - Desactivando algunas características, en miaplicacion/config/filters.yml

rendering: ~
web_debug: ~
security:
  enabled: off

# generally, you will want to insert your own filters here

cache:     ~
common:    ~
flash:
  enabled: off

execution: ~

Algunas opciones sólo son útiles durante el desarrollo de la aplicación, por lo que no se deberían activar en producción. Por defecto Symfony optimiza el rendimiento del entorno de producción deshabilitando todo lo innecesario. Entre las opciones que penalizan el rendimiento, el modo SF_DEBUG es la más importante. Los archivos de log de Symfony también se desactivan por defecto en el entorno de producción.

Si los archivos de log se deshabilitan para las peticiones del entorno de producción, puede ser complicado solucionar los errores que se produzcan en este entorno. Afortunadamente, Symfony dispone de un plugin llamado sfErrorLoggerPlugin, que se ejecuta en segundo plano en el entorno de producción y guarda el log de los errores 404 y 500 en una base de datos. Se trata de un método mucho más rápido que los logs tradicionales, ya que los métodos del plugin sólo se ejecutan cuando falla una petición, mientras que el mecanismo de log penaliza el rendimiento en cualquier caso. Las instrucciones de instalación y el manual del plugin se pueden encontrar en http://www.symfony-project.com/wiki/sfErrorLoggerPlugin.

Truco Se deben comprobar de forma regular los archivos de log de los errores del servidor, ya que contienen información muy útil sobre los errores 404 y 500.