Вопрос достаточно ясен.
php artisan cache:clear
Есть ли какое-нибудь обходное решение для очистки кэша, как описано выше, с помощью CLI. Я использую популярный виртуальный хостинг, но, согласно моему плану, у меня нет доступа к панели управления.
** Я хочу очистить кэш просмотров.
Я видел вопрос почти такой же, как этот, но он мне не помог.
Вы можете вызвать команду 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, чтобы улучшить производительность по сравнению с файловым кэшем.
Я надеюсь, что это помогает кто-то
Перейти к laravelFolder/загрузки/кэшпереименовать
config.phpвсе, что вы хотите, например,
конфигурации.php_old и обновите ваш сайт. Это должно работать как вуду.
Удачи В Кодировании...
можно ли использовать код ниже с новой команды очистки кэша:
//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 не необходимо, чтобы дать возможность очистить кэш, чтобы все, особенно в производственной среде, поэтому я предлагаю прокомментировать, что стороны и, когда он'ы необходимо, чтобы де-комментировать код и запустить маршруты.
Конфигурация кэширования Этот фреймворк 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 ремесленника оптимизации-сила, вы не'т придется больше бежать этим. Поскольку оптимизировать команду, уже говорит композитор, чтобы создать оптимизирована Автозагрузка.
Данный пакет для 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');
Вы можете подключиться по FTP и очистить папку storage\framework\views
для laravel 5
или app\storage\views
для laravel 4
.
В очистить все кэш вне Кинк, сделай это; это работает для меня.
Route::get('/clear', function() {
Artisan::call('cache:clear');
Artisan::call('config:clear');
Artisan::call('config:cache');
Artisan::call('view:clear');
return "Cleared!";
});
Использовал эту страницу несколько раз, чтобы скопировать и вставить быстрых команд в 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
Вы можете сделать это, если вы используете люмен
От что Laravel
на файл routes/web.php
:
use Illuminate\Support\Facades\Artisan;
$app->get('/clear-cache', function () {
$code = Artisan::call('cache:clear');
return 'cache cleared';
});
Вы можете сделать это через маршрутизатор, подобные ответа Франческо, но с меньше беспорядка в маршрутизатор 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 массива.
Этот работал для меня. В вашем проекте перейти к: хранение > В рамках > вид. Удалите все файлы и обновите страницу.
Кэш::заподлицо(); https://laravel.com/docs/5.7/cache#events Эта работа в обработчике класс расширяет 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/
Хотя я категорически не согласен с идеей управлять фреймворк Laravel приложение на виртуальном хостинге (плохая идея все вокруг), этот пакет, вероятно, решить вашу проблему. Это пакет, который позволяет вам запускать некоторые команды мастеровых из интернета. Это'ы далеки от совершенства, но может работать для некоторых навигации.