Laravel 5 – Clear Cache di Server Shared Hosting

Pertanyaan ini cukup jelas.

php artisan cache:clear

Apakah ada solusi untuk menghapus cache seperti di atas kita menggunakan CLI. Saya menggunakan tempat layanan shared hosting, tapi sesuai rencana saya, saya don't memiliki akses control panel.

Aku ingin menghapus pandangan cache.

Aku melihat pertanyaan hampir sama seperti ini, tapi itu doesn't membantu saya.

Mengomentari pertanyaan (5)
Larutan

Anda dapat memanggil seorang Tukang perintah di luar CLI.

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

Anda dapat memeriksa resmi doc di sini http://laravel.com/docs/5.0/artisan#calling-commands-outside-of-cli


Update

Tidak ada cara untuk menghapus cache lihat. Tidak `php artisan cache:jelas'does itu.

Jika anda benar-benar ingin menghapus cache lihat, saya pikir anda harus menulis sendiri tukang perintah dan menyebutnya seperti yang saya katakan sebelumnya, atau seluruhnya loncat tukang path dan clear cache lihat di beberapa kelas yang anda panggil dari controller atau rute.

Namun, pertanyaan sesungguhnya saya adalah apakah anda benar-benar perlu untuk membersihkan cache lihat? Dalam proyek I'm bekerja pada sekarang, saya memiliki hampir 100 cache pandangan dan mereka berat kurang dari 1 Mb, sementara saya vendor direktori > 40 Mb. Saya don't pikir melihat cache adalah real hambatan dalam penggunaan disk dan tidak pernah memiliki kebutuhan nyata untuk menghapus itu.

Adapun aplikasi cache, itu disimpan di bagasi/framework/cachedirektori, tetapi hanya jika anda dikonfigurasifilesopirconfig/cache.php`. Anda dapat memilih banyak driver yang berbeda, seperti Redis atau Memcached, untuk meningkatkan kinerja dari file cache.

Komentar (8)

Saya harap ini membantu seseorang

Pergi ke laravelFolder/bootstrap/cache mengubah config.php untuk apa pun yang anda inginkan misalnya. config.php_old dan reload situs anda. Yang harus bekerja seperti sihir voodoo.

Happy Coding...

Komentar (7)

Seperti yang saya lihat: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html

adalah mungkin untuk menggunakan kode di bawah ini dengan jelas baru cache perintah:

//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>';
});

It's tidak perlu untuk memberikan kemungkinan untuk menghapus cache untuk semua orang, terutama dalam lingkungan produksi, jadi saya sarankan untuk komentar yang rute dan, ketika itu's diperlukan, untuk de-komentar kode dan menjalankan rute.

Komentar (1)

Konfigurasi caching Dengan laravel config menyebar di puluhan file, dan termasuk setiap satu dari mereka untuk setiap permintaan adalah proses yang mahal. Untuk menggabungkan semua config file menjadi satu, gunakan:

php artisan config:cache

Perlu diingat bahwa setiap perubahan konfigurasi tidak akan memiliki efek apapun setelah anda cache. Untuk me-refresh cache config, jalankan perintah di atas lagi. Dalam kasus anda ingin benar-benar menyingkirkan konfigurasi cache, menjalankan

php artisan config:clear

Rute caching Routing juga mahal tugas di laravel. Untuk cache routes.php file menjalankan perintah di bawah ini:

php artisan route:cache

Pikiran bahwa itu doesn't bekerja dengan penutupan. Dalam kasus anda're menggunakan penutupan ini adalah kesempatan besar untuk memindahkan mereka ke controller, sebagai tukang perintah akan melempar pengecualian ketika mencoba untuk mengkompilasi rute yang terikat pada penutupan bukan tepat controller metode. Sama seperti konfigurasi cache, setiap perubahan routes.php tidak akan memiliki efek apapun lagi. Untuk me-refresh cache, jalankan perintah di atas setiap kali anda melakukan perubahan rute file. Untuk benar-benar menyingkirkan rute cache, jalankan perintah di bawah ini:

php artisan route:clear

Classmap optimasi

It's tidak jarang untuk menengah proyek yang akan tersebar di ratusan file PHP. Sebagai coding yang baik mendikte perilaku kita, semuanya memiliki file sendiri. Ini, tentu saja, tidak datang tanpa kelemahan. Laravel harus mencakup puluhan file yang berbeda untuk setiap permintaan, yang merupakan hal yang mahal untuk dilakukan.

Oleh karena itu, sebuah metode optimasi yang menyatakan file yang digunakan untuk setiap permintaan (ini adalah, misalnya, semua penyedia layanan anda, middlewares dan beberapa lagi) dan menggabungkan mereka dalam satu file, yang akan kemudian dimuat untuk setiap permintaan. Ini tidak berbeda dari menggabungkan semua file javascript menjadi satu, sehingga browser akan harus membuat lebih sedikit permintaan ke server.

Tambahan mengkompilasi file (sekali lagi: penyedia layanan, middlewares dan sebagainya) harus dinyatakan dengan anda di config/compile.php dalam file kunci. Setelah anda menempatkan di sana segala sesuatu yang penting untuk setiap permintaan yang dibuat untuk aplikasi anda, menggabungkan mereka dalam satu file dengan:

php artisan optimize --force

Mengoptimalkan komposer autoload

Yang satu ini tidak hanya untuk laravel, tapi untuk setiap aplikasi yang's menggunakan composer.

I'll jelaskan dulu bagaimana PSR-4 autoload bekerja, dan kemudian saya'akan menunjukkan kepada anda apa yang anda harus menjalankan perintah untuk mengoptimalkan itu. Jika anda're tidak tertarik untuk mengetahui bagaimana komposer bekerja, saya sarankan anda melompat langsung ke command console.

Ketika anda meminta komposer untuk App\Controllers\AuthController kelas, hal pertama pencarian untuk asosiasi langsung di classmap. Yang classmap adalah sebuah array dengan 1-ke-1 asosiasi kelas dan file. Karena, tentu saja, anda tidak dapat secara manual menambahkan Masuk kelas dan file terkait ke classmap, komposer akan bergerak dan mencari di namespaces. Karena Aplikasi PSR-4 namespace, yang datang secara default dengan Laravel dan's yang terkait dengan aplikasi/ folder, komposer akan mencoba mengkonversi PSR-kelas 4 nama ke nama file dengan dasar manipulasi string prosedur. Pada akhirnya, ia menebak bahwa App\Controllers\AuthController harus berada di AuthController.php file, yang dalam Controller/ folder yang harus untungnya berada di namespace folder, yang merupakan aplikasi/.

Semua ini kerja keras hanya untuk mendapatkan bahwa App\Controllers\AuthController kelas yang ada di app/Controllers/AuthController.php file. Dalam rangka untuk memiliki komposer memindai seluruh aplikasi dan membuat langsung 1-ke-1 asosiasi kelas dan file, jalankan perintah berikut:

composer dumpautoload -o

Perlu diingat bahwa jika anda sudah berlari php artisan mengoptimalkan --force, anda don't harus menjalankan satu ini lagi. Sejak mengoptimalkan perintah sudah memberitahu komposer untuk membuat aplikasi yang dioptimalkan autoload.

Komentar (0)

Ini adalah paket untuk php ^7.0 dan ^laravel5.5.

Menggunakan paket ini di cronjob yang saya telah dibuat untuk tujuan ini saja. Saya juga menghadapi situasi yang sama. https://packagist.org/packages/afrazahmad/clear-cached-data Instal dan jalankan:

php artisan clear:data

dan itu akan menjalankan perintah berikut automcatically

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

Semoga membantu.

Jika anda ingin menjalankan secara otomatis pada waktu tertentu maka anda akan memiliki untuk men-setup crnjob pertama. misalnya

 in app/console/kernel.php

Dalam promo fungsi:

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

pada Dasarnya saya ingin menghapus cache views.

Sekarang ada perintah di Laravel 5.1 untuk yang

php artisan view:clear
Komentar (0)

Anda dapat terhubung melalui FTP dan jelas bagasi\framework\pandangan folder laravel 5 atau app\bagasi\pandangan untuk laravel 4.

Komentar (0)

Untuk menghapus semua cache luar CLI, Lakukan hal ini; Ini bekerja untuk saya.

Route::get('/clear', function() {

   Artisan::call('cache:clear');
   Artisan::call('config:clear');
   Artisan::call('config:cache');
   Artisan::call('view:clear');

   return "Cleared!";

});
Komentar (2)
php artisan view:clear

akan menghapus cache views

Komentar (1)

Digunakan halaman ini beberapa kali untuk copy dan paste cepat perintah ke komposer, jadi saya menulis sebuah perintah yang melakukan perintah-perintah tersebut dalam satu tukang perintah.

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 . '');

        }
    }
}

Tempat di app\Konsol\Perintah\Admin folder

kemudian jalankan perintah composer php artisan traqza:jelas-segalanya

Happy coding.

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

Komentar (0)

Anda dapat melakukan ini jika anda menggunakan Lumen dari Laravel pada routes/web.php file:

use Illuminate\Support\Facades\Artisan;

$app->get('/clear-cache', function () {
    $code = Artisan::call('cache:clear');
    return 'cache cleared';
});
Komentar (0)

Anda dapat melakukannya melalui router juga, mirip dengan Francesco menjawab tapi dengan sedikit kekacauan di router config

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>";
    }
});

Kemudian jalankan mereka melalui di http://myapp.test/artisan/cache-clear dll Jika anda perlu untuk menambahkan/mengedit berlaku Tukang perintah hanya memperbarui $validCommands array.

Komentar (0)

Ini bekerja untuk saya. Dalam proyek anda pergi ke: bagasi > kerangka > views. Hapus semua file di sana dan refresh halaman anda.

Komentar (0)

Cache::flush(); https://laravel.com/docs/5.7/cache#events Pekerjaan ini di kelas Handler meluas ExceptionHandler

Komentar (0)

Coba ini juga

untuk cli

php artisan jelas:cache

untuk menggunakan artisan command

 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/
Komentar (0)

Sementara saya sangat tidak setuju dengan ide menjalankan sebuah aplikasi laravel di shared hosting (ide yang buruk di sekitar), paket ini mungkin akan memecahkan masalah anda. Ini adalah paket yang memungkinkan anda untuk menjalankan beberapa tukang perintah dari web. It's jauh dari sempurna, tetapi dapat bekerja untuk beberapa usecases.

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

Komentar (0)