Índice

La autocarga de las clases

Sabemos que Symfony se basa en Composer para la autocarga de las clases (ver Empezar con Symfony - La autocarga de clases). Cargar una clase no es una acción pesada de manera individual, pero esta acción se repite millares de veces a lo largo de una consulta en un proyecto Symfony. De esta manera, cachear el archivo asociado a cada una de las clases utilizas por su proyecto, es una optimización interesante.

Vamos a ver que existen dos técnicas de cacheado.

1. Generar un classmap

Con la opción -o del comando dump-autoload, Composer regenera un cargador de clases con mejor rendimiento: se crea una tabla que contiene cada clase del proyecto, asociada a su ubicación física.

El cargador de clases utiliza esta última para encontrar muy rápidamente el archivo que se debe incluir, para cargar una clase dada.

A continuación se muestra el comando en cuestión:

> composer dump-autoload -o

Si su proyecto tiene muchas clases y/o muchas dependencias, podría ser pesado cargar la tabla para cada ejecución del script. Si es usted es muy estricto respecto a los recursos utilizados por su sitio web, puede que le interese la siguiente técnica.

2. Englobar el cargador de clase de Composer

Su controlador front de producción (web/app.php) contiene un determinado número de líneas relativas a ApcClassLoader. ApcClassLoader

Esta clase es el cargador de clases, lo que AppCache es a AppKernel: utilizando el patrón de diseño Decorador, ...