問題はかなり明白です。
php artisan cache:clear
CLIで使用している上記のようにキャッシュをクリアするための回避策はありますか。私は一般的な共有ホスティングサービスを使用していますが、私の計画によれば、私はコントロールパネルにアクセスできません。
**ビューのキャッシュをクリアしたい**
質問 これとほぼ同じですが、役に立ちません。
前もって感謝します。
CLIの外でArtisanコマンドを呼び出すことができます。
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('cache:clear');
// return what you want
});
あなたはここで公式ドキュメントをチェックすることができます http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli
更新
ビューキャッシュを削除する方法はありません。 php artisan cache:clear
もそうしません。
あなたが本当にビューキャッシュをクリアしたいのなら、私はあなたがあなた自身のartisan
name__コマンドを書いて前に述べたようにそれを呼ぶ必要があると思います、あるいは完全にartisan
name__パスをスキップしてルート。
しかし、私の本当の質問は あなたは本当にビューキャッシュをクリアする必要があります ?現在取り組んでいるプロジェクトでは、キャッシュされたビューはほぼ100個あり、それらのビューの重みは1 Mb未満ですが、私のvendor
name__ディレクトリは40 Mb以上です。私はビューキャッシュがディスク使用量の本当のボトルネックであるとは思わないし、それをクリアすることが本当に必要ではありませんでした。
アプリケーションキャッシュについては、storage/framework/cache
ディレクトリに格納されていますが、config/cache.php
でfile
name__ドライバを構成した場合のみです。ファイルベースのキャッシュよりもパフォーマンスを向上させるために、RedisやMemcachedなど、さまざまなドライバを選択できます。
私が見ることができるように: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html
新しい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>';
});
特に本番環境では、キャッシュを全員にクリアする可能性を与える必要はないので、その経路をコメントし、必要に応じてコードのコメントを外して経路を実行することをお勧めします。
これが誰かに役立つことを願っています
laravelFolder/bootstrap/cache
に行き、config.php
の名前をあなたが望むものに変更してください。 config.php_old
してあなたのサイトをリロードしてください。それはブードゥー教のように動作するはずです。
ハッピーコーディング...
設定のキャッシング laravelの設定は何十ものファイルにまたがっています、そしてそれぞれのリクエストに対してincluding
一つ一つはコストのかかるプロセスです。すべての設定ファイルを1つにまとめるには、次のようにします。
php artisan config:cache
設定を変更しても、キャッシュした後は効果がありません。設定キャッシュを更新するには、上記のコマンドをもう一度実行します。設定キャッシュを完全に削除したい場合は、次のコマンドを実行してください。
php artisan config:clear
ルートキャッシング ルーティングは、コストのかかるタスクでもあります。 routes.phpファイルをキャッシュするには、以下のコマンドを実行します。
php artisan route:cache
クロージャーでは機能しないことに注意してください。クロージャーを使用している場合は、適切なコントローラーメソッドではなくクロージャーにバインドされているルートをコンパイルしようとするとartisanコマンドが例外をスローするため、これをコントローラーに移動する絶好の機会です。設定キャッシュと同様に、routes.phpを変更しても効果はありません。キャッシュを更新するには、routesファイルを変更するたびに上記のコマンドを実行します。ルートキャッシュを完全に取り除くには、下記のコマンドを実行してください。
php artisan route:clear
クラスマップの最適化
中規模のプロジェクトが何百ものPHPファイルにまたがることは珍しくありません。良いコーディングの振る舞いが私たちを決定づけるので、すべてがそれ自身のファイルを持っています。もちろん、これには欠点がありません。 Laravelはリクエストごとに何十もの異なるファイルを含める必要がありますが、これはコストのかかる作業です。
したがって、最適な最適化方法は、すべての要求に使用するファイルを宣言し(これは、たとえば、すべてのサービスプロバイダ、ミドルウェアなど)、1つのファイルにまとめて、後で要求ごとにロードされるようにすることです。これは、すべてのJavaScriptファイルを1つにまとめることと変わらないので、ブラウザはサーバーへのリクエストを減らす必要があります。
追加のコンパイルファイル(やはりサービスプロバイダ、ミドルウェアなど)は、ファイルキーのconfig/compile.phpであなたが宣言するべきです。アプリに対するすべてのリクエストに不可欠なものがすべて揃ったら、それらを1つのファイルに連結します。
php artisan optimize --force
作曲家オートロードの最適化
これはlaravelのためだけではなく、composerを利用しているあらゆるアプリケーションのためのものです。
最初にPSR-4オートロードのしくみについて説明し、次にそれを最適化するために実行する必要があるコマンドを紹介します。作曲家がどのように機能するのか知りたくないのであれば、直接consoleコマンドにジャンプすることをお勧めします。
App\Controllers\AuthController
クラスを作曲者に要求すると、まずクラスマップで直接の関連付けを検索します。クラスマップは、クラスとファイルの1対1の関連付けを持つ配列です。もちろん、Loginクラスとそれに関連するファイルを手動でクラスマップに追加しなかったので、composerは先に進み名前空間を検索します。 AppはデフォルトでLaravelが付いていてapp/
フォルダに関連付けられているPSR-4名前空間であるため、composerは基本的な文字列操作手順でPSR-4クラス名をファイル名に変換します。結局、App\Controllers\AuthController
はAuthController.phpファイルの中になければならないと推測します。このファイルは幸いなことにControllers/
の名前空間フォルダーの中にあるはずのapp/
フォルダーの中にあります。
App\Controllers\AuthController
クラスがapp/Controllers/AuthController.php
ファイルに存在することを確認するためだけに、これは大変な作業です。作曲家にアプリケーション全体をスキャンさせ、クラスとファイルの1対1の関連付けを直接作成するには、次のコマンドを実行します。
composer dumpautoload -o
あなたがすでにphp artisan optimize --forceを実行していたならば、もうこれを実行する必要はないことを覚えておいてください。 optimizeコマンドはすでにcomposerに最適化されたオートロードを作成するように伝えます。
このパッケージはphp ^ 7.0と^ laravel5.5用です。
このパッケージは、この目的のためだけに作成したcronjobで使用します。私も同じ状況に直面していました。 https://packagist.org/packages/afrazahmad/clear-cached-data インストールして実行します。
php artisan clear:data
そしてそれは自動的に次のコマンドを実行します。
php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
それが役に立てば幸い。
特定の時間に自動的に実行したい場合は、最初にcrnjobを設定する必要があります。例えば.
in app/console/kernel.php
スケジュール機能:
$schedule->command('clear:data')->dailyAt('07:00');
基本的にビューキャッシュをクリアしたいです。
そのためのLaravel 5.1にコマンドがあります
php artisan view:clear
FTPで接続して、storage\framework\views
の場合はlaravel 5
フォルダー、app\storage\views
の場合はlaravel 4
フォルダーをクリアすることができます。
CLI以外のすべてのキャッシュをクリアするには 、これを実行します。これは私のために働きます。
Route::get('/clear', function() {
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('config:cache');
Artisan::call('view:clear');
return "Cleared!";
});
php artisan view:clear
キャッシュされたビューを消去します
routes/web.php
ファイルでLumen
からLaravel
を使用している場合は、これを実行できます。
use Illuminate\Support\Facades\Artisan;
$app->get('/clear-cache', function () {
$code = Artisan::call('cache:clear');
return 'cache cleared';
});
Francescoの回答に似ていますが、ルーターの設定に混乱が少なく、ルーター経由でも可能です。
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>";
}
});
それから http://myapp.test/artisan/cache-clear etcにアクセスして実行してください。有効なArtisanコマンドを追加/編集する必要がある場合は、$ validCommands配列を更新するだけです。
共有ホスティングでlaravelアプリを実行するという考えには全く反対ですが(このあたりは悪い考えです)、このパッケージはおそらくあなたの問題を解決するでしょう。それはあなたがWebからいくつかの職人コマンドを実行することを可能にするパッケージです。それは完全には程遠いですが、いくつかのユースケースのために働くことができます。
Cache :: flush(); https://laravel.com/docs/5.7/cache#events クラスHandlerのこの作業はExceptionHandlerを拡張
これも試してください
cli用
php職人クリア:キャッシュ
職人用コマンド
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/
これは私のために働きました。プロジェクトで、storage> framework> viewsに移動します。そこにあるすべてのファイルを削除してページを更新してください。
このページを何度か使用してクイックコマンドを作曲家にコピー&ペーストしたので、これらのコマンドを1つの職人コマンドで実行するコマンドを書きました。
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 . '');
}
}
}
app\Console\Commands\Admin
フォルダに配置する
それから作曲家php artisan traqza:clear-everything
でコマンドを実行してください
ハッピーコーディング.
Github - > https://github.com/Traqza/clear-everything