Laravel ejecutar "php artisan optimize" en el servidor
  • Jordi Llobet
  • 20 abr. 2023

Laravel ejecutar "php artisan optimize" en el servidor

Órdenes de optimización 

Laravel (versión 9) contiene un conjunto de comandos que optimizan el funcionamiento de la aplicación para un mejor rendimiento del proyecto. En este artículo explicaré cómo funcionan algunas de estos comandos, haciendo especial referencia a "php artisan optimize". Hablaré de dónde se almacenan los archivos de caché y en qué orden deben ejecutarse durante el despliegue.

Los ficheros de optimización generados por las órdenes se guardan en directorio bootstrap/cache/. 

El comando "php artisan optimize" ya no es necesario debido a las mejoras recientes en la caché del código operativo PHP. La última documentación de Laravel aconseja dejar de utilizar este comando, aunque todavía se puede utilizar en la versión de Laravel 9. 

"php artisan optimize" crea o sobrescribe el archivo bootstrap/cache/config.php. Además, "php artisan optimize" también crea o sobrescribe bootstrap/cache/routes-v7.php. Este comando es una suma de los 2 comandos siguientes:

  • El comando "php artisan config:cache" combina todas vuestras configuraciones en un solo fichero para una carga más rápida. El fichero de memoria caché se guarda en bootstrap/cache/config.php. El comando borra la memoria caché anterior antes de crear una de nueva. La orden "php artisan config:clear" revierte el proceso eliminando bootstrap/cache/config.php.
  • El comando "php artisan route:cache"crea un archivo de caché de ruta para un registro de ruta más rápido. El archivo de caché se guarda en bootstrap/cache/routes-v7.php. La orden borra la memoria caché antigua antes de crear una nueva. El comando  "php artisan route:clear" revierte el proceso eliminando el fichero de memoria caché.

Cuando estamos trabajando en local en nuestro proyecto Laravel, si creamos una ruta nueva para que no nos aparezca el error:

Podemos ejecutar: "php artisan route:cache" que sobreescribirá y añadirá la nueva ruta creada en el archivo bootstrap/cache/routes-v7.php.

Por otro lado, también podemos ejecutar "php artisan optimize" que, como he dicho antes, incluye la orden anterior.

Ejecutar los comandos indicados en el servidor 

En ocasiones debemos dotar a nuestro proyecto de nuevas funcionalidades que requieren definición de nuevas rutas cuando el proyecto ya se encuentra en producción. También nos podemos encontrar que nuestro servicio de "hosting" consiste en un servidor compartido y no tenemos acceso a su terminal. Es decir, no podemos ejecutar los comandos de optimización que hemos visto y, por tanto, no podemos incluir las nuevas rutas. Si nos encontramos en este caso, una solución pasaría subir el siguiente archivo cada vez que se ejecute un comando de optimización relacionado con las rutas:

  • bootstrap/cache/routes-v7.php

Por defecto la carpeta bootstrap/cache contiene un archivo "gitignore". Por lo tanto, se puede realizar la actualización de forma manual a través de FTP o simplemente borrar el archivo "gitignore" de la carpeta para que la aplicación "git" haga el rastreo.

comillas

Si no podemos ejecutar los comandos de optimización de Laravel en el servidor porque no tenemos acceso a la terminal, debemos actualizar en el servidor los archivos de la carpeta "bootstrap/cache/" modificados al ejecutar los pedidos en local