Caché de configuración
La configuración de laravel se propaga a través de docenas de archivos, y including
cada uno de ellos para cada solicitud es un proceso costoso. Para combinar todos sus archivos de configuración en uno, use:
php artisan config:cache
Tenga en cuenta que cualquier cambio en la configuración no tendrá ningún efecto una vez que lo guarde en caché. Para actualizar la caché de configuración, ejecute el comando anterior nuevamente. En caso de que desee deshacerse por completo de la caché de configuración, ejecute
php artisan config:clear
Rutas de almacenamiento en caché El
enrutamiento también es una tarea costosa en laravel. Para almacenar en caché el archivo routes.php, ejecute el siguiente comando:
php artisan route:cache
Tenga en cuenta que no funciona con cierres. En caso de que esté usando cierres, esta es una gran oportunidad para moverlos a un controlador, ya que el comando artesanal arrojará una excepción al intentar compilar rutas que están vinculadas a cierres en lugar de los métodos de controlador adecuados. Al igual que la caché de configuración, cualquier cambio en routes.php ya no tendrá ningún efecto. Para actualizar el caché, ejecute el comando anterior cada vez que realice un cambio en el archivo de rutas. Para deshacerse por completo de la caché de ruta, ejecute el siguiente comando:
php artisan route:clear
Optimización de mapa de clase
No es raro que un proyecto de tamaño mediano se extienda a través de cientos de archivos PHP. Como los buenos comportamientos de codificación nos dictan, todo tiene su propio archivo. Esto, por supuesto, no viene sin inconvenientes. Laravel tiene que incluir docenas de archivos diferentes para cada solicitud, lo cual es algo costoso de hacer.
Por lo tanto, un buen método de optimización es declarar qué archivos se utilizan para cada solicitud (esto es, por ejemplo, todos sus proveedores de servicios, middlewares y algunos más) y combinarlos en un solo archivo, que luego se cargará para cada solicitud. Esto no es diferente de combinar todos sus archivos javascript en uno, por lo que el navegador tendrá que hacer menos solicitudes al servidor.
Usted debe declarar los archivos de compilación adicionales (nuevamente: proveedores de servicios, middlewares, etc.) en config / compile.php, en la clave de archivos. Una vez que haya puesto allí todo lo esencial para cada solicitud realizada en su aplicación, concatenelas en un archivo con:
php artisan optimize --force
Optimizando la carga automática del compositor
Este no es solo para laravel, sino para cualquier aplicación que haga uso del compositor.
Primero explicaré cómo funciona la carga automática de PSR-4, y luego le mostraré qué comando debe ejecutar para optimizarlo. Si no está interesado en saber cómo funciona el compositor, le recomiendo que salte directamente al comando de la consola.
Cuando le pregunta al compositor por la App\Controllers\AuthController
clase, primero busca una asociación directa en el mapa de clase. El mapa de clase es una matriz con asociaciones 1 a 1 de clases y archivos. Como, por supuesto, no agregó manualmente la clase de inicio de sesión y su archivo asociado al mapa de clase, el compositor continuará y buscará en los espacios de nombres. Debido a que la aplicación es un espacio de nombres PSR-4, que viene por defecto con Laravel y está asociada a la app/
carpeta, el compositor intentará convertir el nombre de la clase PSR-4 en un nombre de archivo con procedimientos básicos de manipulación de cadenas. Al final, adivina que App\Controllers\AuthController
debe ubicarse en un archivo AuthController.php, que está en una Controllers/
carpeta que afortunadamente debería estar en la carpeta del espacio de nombres, que está app/
.
Todo este trabajo duro solo para lograr que la App\Controllers\AuthController
clase exista en el app/Controllers/AuthController.php
archivo. Para que el compositor escanee toda su aplicación y cree asociaciones directas 1 a 1 de clases y archivos, ejecute el siguiente comando:
composer dumpautoload -o
Tenga en cuenta que si ya ejecutó php artisan optimice --force, ya no tendrá que ejecutar este. Dado que el comando de optimización ya le dice al compositor que cree una carga automática optimizada.