Laravel 5 - Очистить кэш на сервере общего хостинга

Вопрос довольно понятен.

php artisan cache:clear

Есть ли обходной путь для очистки кэша, как мы использовали выше в CLI. Я пользуюсь популярным сервисом виртуального хостинга, но, согласно моему плану, у меня нет доступа к панели управления.

** Я хочу очистить кеш просмотров. **

Я видел вопрос почти такой же, как этот, но он мне не помогает.

Ответ 1

Вы можете вызвать команду Artisan вне CLI.

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 и вызвать ее, как я уже говорил, или полностью пропустить путь artisan и очистить кэш представления в каком-то классе, вы звоните с контроллера или маршрута.

Но, мой реальный вопрос: действительно ли вам нужно очистить кеш просмотра? В проекте, над которым я сейчас работаю, у меня почти 100 кэшированных представлений, и они весут менее 1 Мб, а мой каталог vendor → 40 Мб. Я не думаю, что кеш просмотра является настоящим узким местом в использовании диска и никогда не нуждался в его очистке.

Что касается кэша приложений, он сохраняется в каталоге storage/framework/cache, но только если вы настроили драйвер file в config/cache.php. Вы можете выбрать множество разных драйверов, таких как Redis или Memcached, для улучшения производительности над файловым кешем.

Ответ 2

Я надеюсь, что это поможет кому-то

Перейдите в laravelFolder/bootstrap/cache, затем переименуйте config.php на все, что хотите, например. config.php_old и перезагрузите свой сайт. Это должно работать как вуду.

Счастливое кодирование...

Ответ 3

Как я вижу: http://itsolutionstuff.com/post/laravel-5-clear-cache-from-route-view-config-and-all-cache-data-from-applicationexample.html

можно использовать следующий код с новыми командами четкого кэша:

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

Не нужно давать возможность очищать кеши всем, особенно в производственной среде, поэтому я предлагаю прокомментировать эти маршруты и, когда это необходимо, отменить комментарий и запустить маршруты.

Ответ 4

Кэширование конфигурации Конфигурация laravel распространяется на десятки файлов, и including каждого из них в каждый запрос является дорогостоящим процессом. Чтобы объединить все ваши файлы конфигурации в один, используйте:

php artisan config:cache

Имейте в виду, что любые изменения в конфигурации не будут иметь никакого эффекта после того, как вы кешируете их. Чтобы обновить кеш конфигурации, снова запустите указанную команду. Если вы хотите полностью избавиться от кеша конфигурации, запустите

php artisan config:clear

Кэширование маршрутов Маршрутизация также является дорогостоящей задачей в Laravel. Для кеширования файла rout.php выполните следующую команду:

php artisan route:cache

Имейте в виду, что это не работает с замыканиями. В случае, если вы используете замыкания, это отличный шанс переместить их в контроллер, так как команда кустарного мастера выдает исключение при попытке компилировать маршруты, которые привязаны к замыканиям, вместо правильных методов контроллера. В том же порядке, что и кеш конфигурации, любые изменения в route.php больше не будут иметь никакого эффекта. Чтобы обновить кэш, запускайте указанную выше команду каждый раз, когда вносите изменения в файл маршрутов. Чтобы полностью избавиться от кэша маршрутов, выполните следующую команду:

php artisan route:clear

Оптимизация карты классов

Нередко проект среднего размера распространяется на сотни файлов PHP. Как говорит нам хорошее поведение при кодировании, у всего есть свой файл. Это, конечно, не обходится без недостатков. Laravel должен включать в себя десятки различных файлов для каждого запроса, что является дорогостоящим делом.

Следовательно, хорошим методом оптимизации является объявление, какие файлы используются для каждого запроса (это, например, все ваши поставщики услуг, промежуточное программное обеспечение и некоторые другие), и объединение их в один файл, который впоследствии будет загружен для каждого запроса. Это не отличается от объединения всех ваших файлов javascript в один, поэтому браузер должен будет делать меньше запросов к серверу.

Дополнительные файлы компиляции (опять же: поставщики услуг, промежуточное программное обеспечение и т.д.) Должны быть объявлены вами в config/compile.php, в ключе files. После того, как вы поместите туда все необходимое для каждого запроса к вашему приложению, объедините их в один файл с:

php artisan optimize --force

Оптимизация автозагрузки композитора

Это не только для laravel, но и для любого приложения, использующего композитор.

Сначала я объясню, как работает автозагрузка PSR-4, а затем покажу, какую команду нужно выполнить, чтобы оптимизировать ее. Если вам не интересно знать, как работает композитор, я рекомендую перейти непосредственно к команде консоли.

Когда вы запрашиваете у App\Controllers\AuthController класс App\Controllers\AuthController, он сначала ищет прямую связь в карте классов. Карта классов представляет собой массив с однозначными ассоциациями классов и файлов. Поскольку, конечно, вы не добавляли класс Login и связанный с ним файл вручную в карту классов, composer будет продолжать поиск в пространствах имен. Поскольку App является пространством имен PSR-4, которое поставляется по умолчанию с Laravel и связано с app/ папкой, 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 уже говорит композитору создать оптимизированную автозагрузку.

Ответ 5

Этот пакет для 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');

Ответ 6

В основном я хочу очистить кеш просмотров.

Теперь в Laravel 5.1 есть команда для

php artisan view:clear

Ответ 7

Вы можете подключиться через FTP и очистить папку storage\framework\views для laravel 5 или app\storage\views для laravel 4.

Ответ 8

Чтобы очистить весь кэш вне CLI, сделайте это; Это работает для меня.

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

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

   return "Cleared!";

});

Ответ 9

php artisan view:clear

очистит кэшированные представления

Ответ 10

Вы можете сделать это, если используете Lumen из Laravel в файле routes/web.php:

use Illuminate\Support\Facades\Artisan;

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

Ответ 11

Вы также можете сделать это через маршрутизатор, аналогично ответу 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 и т.д. Если вам нужно добавить/отредактировать действительные команды Artisan, просто обновите массив $ validCommands.

Ответ 12

Это сработало для меня. В вашем проекте перейдите по ссылке: хранилище> framework> views. Удалите все файлы и обновите страницу.

Ответ 13

Использовал эту страницу несколько раз, чтобы скопировать и вставить быстрые команды в композитор, поэтому я написал команду, которая выполняет эти команды в одной команде ремесленника.

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

Ответ 14

Хотя я категорически не согласен с идеей запуска приложения laravel на виртуальном хостинге (плохая идея), этот пакет, скорее всего, решит вашу проблему. Это пакет, который позволяет вам выполнять некоторые команды ремесленников из Интернета. Это далеко от совершенства, но может работать для некоторых случаев.

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

Ответ 16

Попробуйте это также

для кли

php artisan clear: кеш

для использования ремесленной команды

 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/