vistas rutas proyecto manualmente limpiar cache borrar php laravel-5 command-line-interface

php - rutas - Laravel 5-Borrar caché en servidor de alojamiento compartido



limpiar cache de vistas laravel (16)

Básicamente quiero borrar el caché de vistas.

Ahora hay un comando en Laravel 5.1 para eso

php artisan view:clear

La pregunta es bastante clara.

php artisan cache:clear

¿Hay alguna solución para borrar la caché como la que usamos anteriormente en la CLI? Estoy usando un popular servicio de alojamiento compartido, pero según mi plan, no tengo acceso al panel de control.

** Quiero borrar el caché de vistas. **

Vi una question casi igual que esta, pero no me ayuda.



Como puedo ver: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html

¿Es posible usar el siguiente código con los nuevos comandos de borrar caché:

//Clear Cache facade value: Route::get(''/clear-cache'', function() { $exitCode = Artisan::call(''cache:clear''); return ''<h1>Cache facade value cleared</h1>''; }); //Reoptimized class loader: Route::get(''/optimize'', function() { $exitCode = Artisan::call(''optimize''); return ''<h1>Reoptimized class loader</h1>''; }); //Route cache: Route::get(''/route-cache'', function() { $exitCode = Artisan::call(''route:cache''); return ''<h1>Routes cached</h1>''; }); //Clear Route cache: Route::get(''/route-clear'', function() { $exitCode = Artisan::call(''route:clear''); return ''<h1>Route cache cleared</h1>''; }); //Clear View cache: Route::get(''/view-clear'', function() { $exitCode = Artisan::call(''view:clear''); return ''<h1>View cache cleared</h1>''; }); //Clear Config cache: Route::get(''/config-cache'', function() { $exitCode = Artisan::call(''config:cache''); return ''<h1>Clear Config cleared</h1>''; });

No es necesario dar la posibilidad de borrar los cachés a todos, especialmente en un entorno de producción, por lo que sugiero comentar esas rutas y, cuando sea necesario, descomentar el código y ejecutar las rutas.


Espero que esto ayude a alguien

Vaya a laravelFolder/bootstrap/cache y cambie el nombre de config.php a lo que desee, por ejemplo. config.php_old y recarga tu sitio. Eso debería funcionar como vudú.

Feliz codificación ...


Esto funcionó para mí. En su proyecto, vaya a: almacenamiento> marco> vistas. Elimine todos los archivos allí y actualice su página.


Para borrar todo el caché fuera de la CLI , haga esto; Esto funciona para mi.

Route::get(''/clear'', function() { Artisan::call(''cache:clear''); Artisan::call(''config:clear''); Artisan::call(''config:cache''); Artisan::call(''view:clear''); return "Cleared!"; });



Puede conectarse a través de FTP y borrar la carpeta storage/framework/views para laravel 5 o app/storage/views para laravel 4 .


Puede hacer esto si está utilizando Lumen de Laravel en sus routes/web.php archivo routes/web.php :

use Illuminate/Support/Facades/Artisan; $app->get(''/clear-cache'', function () { $code = Artisan::call(''cache:clear''); return ''cache cleared''; });


Puede llamar a un comando Artisan fuera de la CLI.

Route::get(''/clear-cache'', function() { $exitCode = Artisan::call(''cache:clear''); // return what you want });

Puede consultar el documento oficial aquí http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli

Actualizar

No hay forma de eliminar la vista de caché. Tampoco php artisan cache:clear hace eso.

Si realmente desea borrar la memoria caché de vista, creo que debe escribir su propio comando artisan y llamarlo como dije antes, o omitir por completo la ruta artisan y borrar la memoria caché de vista en alguna clase que llame desde un controlador o un ruta.

Pero, mi verdadera pregunta es ¿realmente necesita borrar el caché de vista ? En un proyecto en el que estoy trabajando ahora, tengo casi 100 vistas en caché y pesan menos de 1 Mb, mientras que mi directorio de vendor es> 40 Mb. No creo que ver el caché sea un verdadero cuello de botella en el uso del disco y nunca tuve la necesidad real de borrarlo.

En cuanto al caché de la aplicación , se almacena en el directorio storage/framework/cache , pero solo si configuró el controlador de file en config/cache.php . Puede elegir muchos controladores diferentes, como Redis o Memcached , para mejorar el rendimiento en una memoria caché basada en archivos.


Si bien estoy totalmente en desacuerdo con la idea de ejecutar una aplicación laravel en alojamiento compartido (una mala idea en general), este paquete probablemente resolverá su problema. Es un paquete que le permite ejecutar algunos comandos artesanales desde la web. Está lejos de ser perfecto, pero puede funcionar para algunos casos de uso.

https://github.com/recca0120/laravel-terminal


También puede hacerlo a través del enrutador, similar a la respuesta de Francesco pero con menos desorden en la configuración del enrutador

Route::get(''/artisan/{cmd}'', function($cmd) { $cmd = trim(str_replace("-",":", $cmd)); $validCommands = [''cache:clear'', ''optimize'', ''route:cache'', ''route:clear'', ''view:clear'', ''config:cache'']; if (in_array($cmd, $validCommands)) { Artisan::call($cmd); return "<h1>Ran Artisan command: {$cmd}</h1>"; } else { return "<h1>Not valid Artisan command</h1>"; } });

Luego ejecútelos visitando http://myapp.test/artisan/cache-clear etc. Si necesita agregar / editar comandos Artisan válidos, simplemente actualice la matriz $ validCommands.


Usé esta página varias veces para copiar y pegar comandos rápidos en el compositor, así que escribí un comando que ejecuta estos comandos en un solo comando artesanal.

namespace App/Console/Commands/Admin; use Illuminate/Console/Command; class ClearEverything extends Command { protected $signature = ''traqza:clear-everything''; protected $description = ''Clears routes, config, cache, views, compiled, and caches config.''; public function __construct() { parent::__construct(); } public function handle() { $validCommands = array(''route:clear'', ''config:clear'', ''cache:clear'', ''view:clear'', ''clear-compiled'', ''config:cache''); foreach ($validCommands as $cmd) { $this->call('''' . $cmd . ''''); } } }

Colocar en la carpeta app/Console/Commands/Admin

luego ejecute el comando en el compositor php artisan traqza:clear-everything

Feliz codificación

Github -> https://github.com/Traqza/clear-everything


Caché de configuración La configuración de laravel se propaga a través de docenas de archivos, e 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, ejecuta el siguiente comando:

php artisan route:cache

Tenga en cuenta que no funciona con cierres. En caso de que esté utilizando cierres, esta es una gran oportunidad para moverlos a un controlador, ya que el comando artesanal arrojará una excepción cuando intente 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 a 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 esté haciendo 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 pide al compositor la clase App/Controllers/AuthController , 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. Dado 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 se encuentra en una carpeta Controllers/ que por suerte debería estar en la carpeta de espacio de nombres, que es app/ .

Todo este trabajo duro solo para lograr que la clase App/Controllers/AuthController exista en el archivo app/Controllers/AuthController.php . 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.


Este paquete es para php ^ 7.0 y ^ laravel5.5 .

Use este paquete en cronjob que he creado solo para este propósito. También me enfrentaba a la misma situación. https://packagist.org/packages/afrazahmad/clear-cached-data Instalarlo y ejecutar:

php artisan clear:data

y ejecutará los siguientes comandos automáticamente

php artisan cache:clear php artisan view:clear php artisan route:clear php artisan clear-compiled php artisan config:cache

Espero eso ayude.

Si desea ejecutarlo automáticamente a una hora específica, primero deberá configurar el trabajo crnjob. p.ej

in app/console/kernel.php

En función del horario:

$schedule->command(''clear:data'')->dailyAt(''07:00'');


php artisan view:clear

borrará las vistas en caché