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

Вопрос достаточно ясен.

php artisan cache:clear

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

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

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

Комментарии к вопросу (5)
Решение

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

Комментарии (8)

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

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

Удачи В Кодировании...

Комментарии (7)

Как я вижу: 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>';
});

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

Комментарии (1)

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

php artisan config:cache

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

php artisan config:clear

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

php artisan route:cache

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

php artisan route:clear

Оптимизация Classmap

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

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

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

php artisan optimize --force

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

Это не только фреймворк Laravel, но для любого приложения, что'ы использование композитором.

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

Когда вы спросите композитора для контроллеров приложения\класс\AuthController, он сначала ищет прямые ассоциации в classmap. В classmap это массив с 1-к-1 организаций, классов и файлов. Поскольку, конечно, вы не вручную добавить класс логин и соответствующий файл в classmap, композитор будет двигаться дальше и найти в пространствах имен. Поскольку приложение представляет собой ПСР-4 пространства имен, который поставляется по умолчанию с Laravel и это'ы, связанные в папку приложения/, композитор постараемся преобразования ПСР-4 имя класса с именем базовые процедуры обработки строк. В конце концов, он догадывается, что контроллеры приложения\\AuthController должны быть расположены в файле authcontroller.php , который находится в папкеконтроллеры/что надо к счастью быть в пространстве имен папок, которые программа/`.

Все это тяжело работать только, чтобы получить, что класс контроллеры приложения\\AuthController существует в файл app/Controllers/AuthController.php`. Для того, чтобы композитор сканирование всего вашего приложения и создайте прямой 1-к-1 организаций, классов и файлов, выполните следующую команду:

composer dumpautoload -o

Имейте в виду, что если вы уже побежали на PHP ремесленника оптимизации-сила, вы не'т придется больше бежать этим. Поскольку оптимизировать команду, уже говорит композитор, чтобы создать оптимизирована Автозагрузка.

Комментарии (0)

Данный пакет для PHP ^7.0 и ^laravel5.5.

Использовать этот пакет в процентах, что я создана только для этой цели. Я был также сталкиваются с той же ситуации. https://packagist.org/packages/afrazahmad/clear-cached-data Установить и запустить:

php artisan clear:data

и он будет выполните следующие команды automcatically

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');
Комментарии (0)

В основном я хочу очистить кэш представлений.

В Laravel 5.1 для этого теперь есть команда

php artisan view:clear
Комментарии (0)

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

Комментарии (0)

В очистить все кэш вне Кинк, сделай это; это работает для меня.

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

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

   return "Cleared!";

});
Комментарии (2)
php artisan view:clear

очистить кэшированные просмотры

Комментарии (1)

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

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

        }
    }
}

Разместить в папке приложения\консоли\команды\администратора

затем выполните команду редактора для PHP ремесленника traqza:понятно-все

Удачи в кодировании.

Гитхаб-и GT; https://github.com/Traqza/clear-everything

Комментарии (0)

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

use Illuminate\Support\Facades\Artisan;

$app->get('/clear-cache', function () {
    $code = Artisan::call('cache:clear');
    return 'cache cleared';
});
Комментарии (0)

Вы можете сделать это через маршрутизатор, подобные ответа Франческо, но с меньше беспорядка в маршрутизатор 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>";
    }
});

Затем запустить их через посещение http://myapp.test/artisan/cache-clear и т. д. Если вам нужно добавить/изменить допустимые команды ремесленника просто обновить $validCommands массива.

Комментарии (0)

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

Комментарии (0)

Кэш::заподлицо(); https://laravel.com/docs/5.7/cache#events Эта работа в обработчике класс расширяет ExceptionHandler

Комментарии (0)

Попробовать это также

для 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/
Комментарии (0)

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

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

Комментарии (0)