La question est assez claire.
php artisan cache:clear
Existe-t-il une solution de contournement pour effacer le cache comme ci-dessus que nous utilisons dans la CLI J'utilise un service d'hébergement partagé populaire, mais conformément à mon plan, je n'ai pas accès au panneau de configuration.
** Je veux vider le cache des vues. **
J'ai vu une question presque identique à celle-ci, mais cela ne m'aide pas.
Merci d'avance.
Vous pouvez appeler une commande artisanale en dehors de la CLI.
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('cache:clear');
// return what you want
});
Vous pouvez consulter le document officiel ici http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli
Mettre à jour
Il n'y a aucun moyen de supprimer le cache de vue. Ni l'un ni l'autre php artisan cache:clear
ne le fait.
Si vous voulez vraiment vider le cache de vue, je pense que vous devez écrire votre propre commande artisan
et l'appeler comme je l'ai déjà dit, ou ignorer entièrement le chemin artisan
et effacer le cache de vue dans une classe que vous appelez depuis un contrôleur route.
Mais, ma vraie question est avez-vous vraiment besoin d'effacer le cache de vue? Dans un projet sur lequel je travaille actuellement, j'ai presque 100 vues en cache et leur poids est inférieur à 1 Mo, alors que mon répertoire vendor
est supérieur à 40 Mo. Je ne pense pas que le cache de visualisation constitue un véritable goulot d'étranglement dans l'utilisation du disque et que je n'ai jamais eu réellement besoin de le vider.
Quant au cache d'application, il est stocké dans le répertoire storage/framework/cache
, mais uniquement si vous avez configuré le pilote file
dans config/cache.php
. Vous pouvez choisir différents pilotes, tels que Redis _ ou Memcached, pour améliorer les performances sur un cache basé sur des fichiers.
Comme je vois: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-dom-applicationexample.html
est-il possible d'utiliser le code ci-dessous avec les nouvelles commandes clear cache:
//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>';
});
Il n'est pas nécessaire de donner la possibilité de vider les caches à tout le monde, en particulier dans un environnement de production. Je suggère donc de commenter ces routes et, le cas échéant, de commenter le code et de les exécuter.
J'espère que ça aidera quelqu'un
Allez à laravelFolder/bootstrap/cache
puis renommez config.php
comme bon vous semble, par exemple. config.php_old
et rechargez votre site. Cela devrait fonctionner comme du vaudou.
Bonne codage ...
Mise en cache de la configuration La configuration de laravel s’étend sur des dizaines de fichiers et including
chacun d’eux pour chaque demande est un processus coûteux. Pour combiner tous vos fichiers de configuration en un, utilisez:
php artisan config:cache
Gardez à l'esprit que toute modification apportée à la configuration n'aura aucun effet une fois que vous l'avez mise en cache. Pour actualiser le cache de configuration, exécutez à nouveau la commande ci-dessus. Si vous souhaitez vous débarrasser complètement du cache de configuration, exécutez
php artisan config:clear
Routing caching Le routage est également une tâche coûteuse en laravel. Pour mettre en cache le fichier routes.php, exécutez la commande ci-dessous:
php artisan route:cache
Remarquez que cela ne fonctionne pas avec les fermetures. Si vous utilisez des fermetures, c'est une excellente occasion de les déplacer dans un contrôleur, car la commande artisan lancera une exception lors de la compilation d'itinéraires liés à des fermetures au lieu des méthodes de contrôleur appropriées . le cache de configuration, toute modification apportée à routes.php n'aura plus aucun effet. Pour actualiser le cache, exécutez la commande ci-dessus chaque fois que vous modifiez le fichier routes. Pour vous débarrasser complètement du cache de route, exécutez la commande ci-dessous:
php artisan route:clear
Optimisation de classmap
Il n'est pas rare qu'un projet de taille moyenne soit réparti sur des centaines de fichiers PHP. De bons comportements de codage nous dictent que tout a son propre fichier. Ceci, bien sûr, ne vient pas sans inconvénients. Laravel doit inclure des dizaines de fichiers différents pour chaque demande, ce qui est une opération coûteuse.
Par conséquent, une bonne méthode d’optimisation consiste à déclarer quels fichiers sont utilisés pour chaque demande (il s’agit par exemple de tous vos fournisseurs de services, de vos middlewares et de quelques autres) et à les combiner dans un seul fichier, qui sera ensuite chargé pour chaque demande. Ce n’est pas différent de la combinaison de tous vos fichiers javascript en un seul. Le navigateur devra donc faire moins de demandes au serveur.
Les fichiers de compilation supplémentaires (encore une fois: fournisseurs de services, middlewares, etc.) doivent être déclarés par vous dans config/compile.php, dans la clé files. Une fois que vous avez mis tout ce qui est essentiel pour chaque demande faite à votre application, concaténez-les dans un seul fichier avec:
php artisan optimize --force
Optimiser le chargement automatique du compositeur
Celui-ci n'est pas uniquement destiné à Laravel, mais à toute application utilisant composeur.
Je vais d'abord expliquer le fonctionnement du chargement automatique du PSR-4, puis je vais vous montrer la commande à exécuter pour l'optimiser. Si vous n'êtes pas intéressé à savoir comment fonctionne Composer, je vous recommande de passer directement à la commande de la console.
Lorsque vous demandez au compositeur la classe App\Controllers\AuthController
, il recherche d'abord une association directe dans la mappe de classes. La classmap est un tableau avec des associations 1 à 1 de classes et de fichiers. Puisque, bien entendu, vous n’avez pas ajouté manuellement la classe Login et son fichier associé à la classmap, compositeur passera à la recherche d’espaces de noms ., Étant donné qu’App est un espace de noms PSR-4, fourni par défaut avec Laravel et associé au dossier app/
, le compositeur essaiera de convertir le nom de la classe du PSR-4 en un nom de fichier avec les procédures de manipulation de chaîne de base. En fin de compte, il suppose que App\Controllers\AuthController
doit se trouver dans un fichier AuthController.php, qui se trouve dans un dossier Controllers/
qui devrait heureusement se trouver dans le dossier de l’espace de nommage, qui est app/
.
Tout ce travail acharné pour obtenir que la classe App\Controllers\AuthController
existe dans le fichier app/Controllers/AuthController.php
. Pour que compositeur analyse l'ensemble de votre application et crée des associations directes de classes et de fichiers, exécutez la commande suivante:
composer dumpautoload -o
Gardez à l'esprit que si vous avez déjà exécuté php artisan optimise --force, vous n'avez plus besoin de l'exécuter. Étant donné que la commande optimise indique déjà au compositeur de créer un chargement automatique optimisé.
Ce paquet est pour php ^ 7.0 et ^ laravel5.5.
Utilisez ce paquet dans cronjob que j'ai créé uniquement à cette fin . Je faisais également face à la même situation . https://packagist.org/packages/afrazahmad/clear-cached- données Installez-le et exécutez:
php artisan clear:data
et il exécutera automatiquement les commandes suivantes
php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
J'espère que ça aide.
Si vous voulez l'exécuter automatiquement à une heure précise, vous devez d'abord configurer crnjob .
in app/console/kernel.php
Dans la fonction de planification:
$schedule->command('clear:data')->dailyAt('07:00');
En gros, je veux vider le cache des vues.
Il existe maintenant une commande dans Laravel 5.1 pour cela
php artisan view:clear
Vous pouvez vous connecter via FTP et effacer le dossier storage\framework\views
pour laravel 5
ou app\storage\views
pour laravel 4
.
php artisan view:clear
effacera les vues en cache
Pour effacer tout le cache en dehors de la CLI , Faites ceci; Cela fonctionne pour moi.
Route::get('/clear', function() {
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('config:cache');
Artisan::call('view:clear');
return "Cleared!";
});
Vous pouvez le faire si vous utilisez Lumen
à partir de Laravel
dans votre fichier routes/web.php
:
use Illuminate\Support\Facades\Artisan;
$app->get('/clear-cache', function () {
$code = Artisan::call('cache:clear');
return 'cache cleared';
});
Vous pouvez également le faire via un routeur, similaire à Francesco answer mais avec moins d'encombrement dans la configuration du routeur.
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>";
}
});
Puis exécutez-les via http: //myapp.test/artisan/cache-clear etc .__ en visitant. Si vous devez ajouter/modifier des commandes Artisan valides, mettez à jour le tableau $ validCommands.
Bien que je sois tout à fait en désaccord avec l’idée de lancer une application Laravel sur l’hébergement mutualisé (une mauvaise idée de tous les côtés), ce package résoudra probablement votre problème. C'est un paquet qui vous permet d'exécuter des commandes artisanales à partir du Web. C'est loin d'être parfait, mais cela peut marcher pour certains cas d'utilisation.
Cache :: flush (); https://laravel.com/docs/5.7/cache#events Ce travail dans la classe Handler étend ExceptionHandler.
Essayez ceci aussi
pour cli
php artisan clear: cache
pour commande artisanale
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/
Cela a fonctionné pour moi. Dans votre projet, accédez à: stockage> framework> vues. Supprimez tous les fichiers et actualisez votre page.
A utilisé cette page plusieurs fois pour copier et coller des commandes rapides dans composer, j'ai donc écrit une commande qui effectue ces commandes en une seule commande artisanale.
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 . '');
}
}
}
Placer dans le dossier app\Console\Commands\Admin
puis exécutez la commande dans composer php artisan traqza:clear-everything
Bonne codage.