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.
Caché :: flush (); https://laravel.com/docs/5.7/cache#events Este trabajo en el controlador de clase extiende ExceptionHandler
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!";
});
Prueba esto también
para cli
php artisan clear: caché
para usar comando artesanal
Route::get(''/clear-cache'', function() {
$exitCode = Artisan::call(''cache:clear'');
return ''Application cache cleared'';
});
[ https://www.tutsmake.com/laravel-clear-cache-using-artisan-command-cli/][1]
[1]: https://www.tutsmake.com/laravel-clear-cache-using-artisan-command-cli/
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.
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
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é