IronWoods.es

Desarrollo web

Blog / Laravel / Artisan: clear commands

Después de ciertas acciones en Laravel o si parece que la aplicación no actualiza cambios recién introducidos, usamos diferentes comandos de limpieza de artisan.

  • php artisan cache:clear
    Limpiar cache
  • php artisan config:clear
    Limpiar configuración
  • php artisan route:clear
    Limpiar rutas
  • php artisan view:clear
    Limpiar vistas
  • php artisan optimize
    Limpiar todo

Limpieza en producción sin acceso SSH

Cuando no existe la posibilidad de ejecutar comandos artisan en terminal, podemos hacerlo mediante código, por ejemplo:


Artisan::call('cache:clear');

Deberíamos disponer algún mecanismo para ejecutar el script, desde el panel de administración, por ejemplo, un enlace que lleve a la ejecución del comando:


Route::get('clear-all', function()
{
    Artisan::call('optimize:clear');

    return redirect('dashboard')
        ->with(
            'success',
            Artisan::output()
        );
})->middleware([
    'auth',
    'cms-admin-actions'
]);

¡Cuidado con las rutas!

En la documentación de Laravel, desde la versión 5.5 y hasta la versión 7.x, aparece una advertencia con respecto a las rutas con closures, por ejemplo, esta:


Route::get('welcome', function ()
{
    return view('welcome');
});

Se producirá el error:

LogicException

Unable to prepare route [welcome] for serialization. Uses Closure

al ejecutar: php artisan route:clear o php artisan optimize.


La ejecución de la "limpieza" de rutas durante el despliegue, permite optimizar la carga de las rutas de la aplicación, muy importante si hay muchas rutas. Estas deberán ser de tipo: FooController@bazMethod.