Laravel 5-Clear cache dans un serveur d'hébergement partagé

la question est assez claire.

php artisan cache:clear

est-ce qu'il y a du travail autour pour vider le cache comme ci-dessus que nous utilisons dans CLI. J'utilise un célèbre service d'hébergement partagé, mais selon mon plan, je n'ai pas accès au panneau de configuration.

en gros, je veux vider le cache des vues.

j'ai vu une question presque la même chose, mais ça ne m'aide pas.

Merci à l'avance.

83
demandé sur Community 2015-07-16 16:38:10

12 réponses

vous pouvez appeler une commande artisanale en dehors du CLI.

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

vous pouvez consulter le doc officiel ici http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli


mise à jour

il n'y a aucun moyen de supprimer le cache view. Ni php artisan cache:clear .

si vous voulez vraiment effacer la vue cache, Je pense que vous devez écrire votre propre commande artisan et l'appeler comme je l'ai dit plus tôt, ou sauter entièrement le chemin artisan et vider le cache de vue dans une classe que vous appelez d'un contrôleur ou d'une route.

mais, ma vraie question Est avez-vous vraiment besoin d'effacer la vue cache ? Dans un projet sur lequel je travaille maintenant, j'ai presque 100 vues en cache et elles pèsent moins de 1 Mo, alors que mon répertoire vendor est > 40 Mo. Je ne pense pas que la vue

103
répondu Marco Pallante 2015-07-19 05:26:22

comme je peux le voir: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html

est - il possible d'utiliser le code ci-dessous avec les nouvelles commandes de cache claires:

//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 libérer les caches à tout le monde, en particulier dans un environnement de production, donc je suggère de commenter que les routes et, quand il est nécessaire, dés-Commenter le code et exécuter les routes.

36
répondu Francesco 2017-07-08 09:45:42

Config "mise en cache 1519160920" La config laravel s'étend sur des dizaines de fichiers, et including chacun d'eux pour chaque requête est un processus coûteux. Pour combiner tous vos fichiers de configuration en un seul, utilisez:

php artisan config:cache

gardez à l'esprit que toute modification de la configuration n'aura aucun effet une fois que vous l'aurez mise en cache. Pour rafraîchir le cache de configuration, exécutez à nouveau la commande ci-dessus. Dans le cas où vous voulez vous débarrasser complètement du cache de configuration, exécutez

php artisan config:clear

Itinéraires "mise en cache 1519160920" Le routage est également une tâche coûteuse à laravel. Pour mettre en cache les routes.le fichier php exécute la commande suivante:

php artisan route:cache

l'Esprit que cela ne fonctionne pas avec les fermetures. Dans le cas où vous utilisez des fermetures, c'est une grande chance de les déplacer dans un contrôleur, car la commande artisan fera une exception en essayant de compiler des routes qui sont liées à des fermetures au lieu d'un contrôleur approprié. méthode. Dans le même format que le cache de configuration, tout changement de route.php n'ont plus aucun effet. Pour rafraîchir le cache, exécutez la commande ci-dessus à chaque fois que vous modifiez le fichier routes. Pour supprimer complètement le cache de route, lancez la commande suivante:

php artisan route:clear

Classmap optimisation

il n'est pas rare qu'un projet de taille moyenne s'étende à des centaines de fichiers PHP. Comme bons comportements de codage nous dictent, tout a son propre fichier. Cela, bien sûr, ne va pas sans inconvénients. Laravel doit inclure des douzaines de fichiers différents pour chaque requête, ce qui est coûteux.

par conséquent, une bonne méthode d'optimisation est de déclarer quels fichiers sont utilisés pour chaque requête (c'est, par exemple, tous vos fournisseurs de services, middlewares et quelques autres) et de les combiner dans un seul fichier, qui sera ensuite chargé pour chaque requête. Ce n'est pas différente de la combinaison de tous vos fichiers javascript en un seul, de sorte que le navigateur devra faire moins de requêtes vers le serveur.

les fichiers compiles supplémentaires (encore une fois: fournisseurs de services, middlewares et ainsi de suite) doivent être déclarés par vous dans la configuration/compilation.php, dans la clé des fichiers. Une fois que vous y mettez tout ce qui est essentiel pour chaque demande faite à votre application, concaténez-les dans un fichier avec:

php artisan optimize --force

optimiser le compositeur autoload

celui-ci n'est pas seulement pour laravel, mais pour toute application qui fait usage de composer.

je vais d'abord vous expliquer le fonctionnement du PSR-4 autoload, et ensuite je vais vous montrer quelle commande vous devez exécuter pour l'optimiser. Si vous n'êtes pas intéressé de savoir comment composer fonctionne, je vous recommande de passer directement à la commande console.

lorsque vous demandez à composer pour la classe App\Controllers\AuthController , il recherche d'abord un association directe dans classmap. Classmap est un tableau avec des associations 1 à 1 de classes et de fichiers. Puisque, bien sûr, vous n'avez pas ajouté manuellement la classe Login et son fichier associé à classmap, composer passera à la recherche dans les espaces de noms. Comme App est un namespace PSR-4, qui est fourni par défaut avec Laravel et est associé au dossier app/ , composer va essayer de convertir le nom de classe PSR-4 en un nom de fichier avec des procédures de manipulation de chaîne de base. Finalement, il devine que App\Controllers\AuthController doit être localisé dans un AuthController.fichier php, qui est dans un dossier Controllers/ qui devrait heureusement être dans le dossier namespace, qui est app/ .

Tout ce travail pour obtenir que la classe App\Controllers\AuthController existe dans le fichier app/Controllers/AuthController.php . Pour que composer scanne l'ensemble de votre application et crée des associations 1 à 1 de classes et de fichiers, lancez la commande suivante:

composer dumpautoload -o

Gardez à l'esprit que si vous avez déjà exécuté php artisan optimiser --force, vous n'avez pas à exécuter ce un plus. Depuis la commande optimiser dit déjà à composer de créer une autoload optimisée.

30
répondu Maulik 2018-03-26 11:04:48

j'espère que cela aide quelqu'un

passer à laravelFolder/bootstrap/cache puis renommer config.php à tout ce que vous voulez par exemple. config.php_old et Rechargez votre site. Qui devrait fonctionner comme le vaudou.

Heureux De Codage...

24
répondu Adepoju-Conde Adesegun Chris. 2017-02-27 00:16:26

en gros, je veux vider le cache des vues.

il y a maintenant une commande dans Laravel 5.1 pour que

php artisan view:clear
15
répondu Laurence 2016-11-22 22:58:43

ce paquet est pour php ^7.0 et ^laravel5.5 .

utilisez ce paquet dans cronjob que j'ai créé à cette fin seulement. J'étais également confronté à la même situation. https://packagist.org/packages/afrazahmad/clear-cached-data Installez-le et lancez:

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 aider.

Si vous voulez l'exécuter automatiquement à l'heure, alors vous devrez configurer crnjob premier. par exemple

 in app/console/kernel.php

dans la fonction de programme:

$schedule->command('clear:data')->dailyAt('07:00');
12
répondu Afraz Ahmad 2018-09-19 05:23:02

vous pouvez vous connecter via FTP et effacer storage\framework\views dossier pour laravel 5 ou app\storage\views pour laravel 4 .

6
répondu gandra404 2018-01-24 11:09:06

vous pouvez le faire si vous utilisez Lumen de Laravel sur votre routes/web.php fichier:

use Illuminate\Support\Facades\Artisan;

$app->get('/clear-cache', function () {
    $code = Artisan::call('cache:clear');
    return 'cache cleared';
});
1
répondu pableiros 2017-12-17 17:50:38

vous pouvez le faire via router ainsi, similaire à Francesco réponse, 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 lancez-les via http://myapp.test/artisan/cache-claire , etc Si vous avez besoin d'ajouter/éditer des commandes Artisan valides, mettez à jour le tableau $validCommands.

1
répondu chemic 2018-06-22 09:17:08

bien que je ne sois pas du tout d'accord avec l'idée de lancer une application laravel sur l'hébergement partagé (une mauvaise idée tout autour), ce paquet résoudrait probablement votre problème. C'est un paquet qui vous permet d'exécuter certaines commandes artisanales à partir du web. C'est loin d'être parfait, mais ça peut marcher pour quelques affaires.

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

0
répondu Ben Yanke 2018-01-15 17:21:37

ça a marché pour moi. Dans votre projet, allez à: stockage > cadre > vues. Supprimez tous les fichiers et rafraîchissez votre page.

0
répondu rogramatic 2018-08-11 10:27:39
php artisan view:clear

va effacer les vues de cache

0
répondu Spidi 2018-10-05 12:02:00