Вопрос довольно ясен.
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 , для улучшения производительности в кеше на основе файлов.
можно ли использовать следующий код с новыми командами четкого кэша:
//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 5.1 есть команда
php artisan view:clear
Конфигурационное кэширование Конфигурация laravel распространяется на десятки файлов и including
каждый из них для каждого запроса – это дорогостоящий процесс. Чтобы объединить все ваши файлы конфигурации в один, используйте: 1
php artisan config:cache
Имейте в виду, что любые изменения в конфигурации не будут иметь никакого эффекта, как только вы его кешируете. Чтобы обновить кеш конфигурации, выполните приведенную выше команду еще раз. Если вы хотите полностью избавиться от кеша конфигурации, запустите 1
php artisan config:clear
Маршрутизация маршрутов Маршрутизация также является дорогостоящей задачей в laravel. Для кэширования файла route.php выполните следующую команду: 1
php artisan route:cache
Имейте в виду, что он не работает с закрытием. Если вы используете закрытие, это отличный шанс переместить их в контроллер, так как команда artisan будет генерировать исключение при попытке скомпилировать маршруты, привязанные к закрытию, вместо правильных методов контроллера. В то же время, что и в кэше конфигурации, никаких изменений в route.php больше не будет. Чтобы обновить кеш, выполните указанную выше команду каждый раз, когда вы делаете изменения в файле маршрутов. Чтобы полностью избавиться от кеша маршрута, выполните следующую команду: 1
php artisan route:clear
Оптимизация Classmap
Это не редкость для распространения проекта среднего размера на сотни файлов PHP. По мере того, как диктуют хорошие правила кодирования, у всех есть свой собственный файл. Это, конечно, не имеет недостатков. Laravel должен включать в себя десятки разных файлов для каждого запроса, что дорого стоит.
Следовательно, хороший метод оптимизации объявляет, какие файлы используются для каждого запроса (это, например, все ваши поставщики услуг, посредники и еще несколько) и объединение их только в один файл, который после этого будет загружен для каждого запроса. Это не отличается от объединения всех ваших файлов javascript в один, поэтому браузеру придется делать меньше запросов на сервер.
Дополнительные файлы компиляции (опять же: поставщики услуг, посредники и т. Д.) Должны быть объявлены вами в файле config / compile.php в файле. Как только вы разместите там все необходимое для каждого запроса, сделанного в вашем приложении, объедините их в один файл с помощью: 1
php artisan optimize --force
Оптимизация автозагрузки композитора
Это не только для laravel, но и для любого приложения, использующего композитор.
Сначала я объясню, как работает автозагрузка PSR-4, а затем я покажу вам, какую команду вы должны выполнить для ее оптимизации. Если вам не интересно знать, как работает композитор, я рекомендую вам перейти непосредственно к команде консоли.
Когда вы запрашиваете compsoser для класса App \ Controllers \ AuthController, он сначала ищет прямую связь в classmap. Карта классов представляет собой массив с 1-в-1 ассоциациями классов и файлов. Поскольку, конечно, вы вручную не добавляли класс Login и связанный с ним файл в classmap, композитор будет перемещаться и искать в пространствах имен. Поскольку приложение является пространством имен PSR-4, которое по умолчанию поставляется с Laravel и связано с приложением / папкой, композитор попытается преобразовать имя класса PSR-4 в имя файла с помощью основных процедур манипуляции с строкой. В конце концов, он догадывается, что App \ Controllers \ AuthController должен находиться в файле AuthController.php, который находится в папке Controllers /, которая, к счастью, находится в папке пространства имен, которая является app /.
Все это усложняет работу только с тем, что класс App \ Controllers \ AuthController существует в файле app / Controllers / AuthController.php. Для того, чтобы композитор просматривал ваше приложение и создавал прямые ассоциации классов 1 и 1, выполните следующую команду: 1
composer dumpautoload -o
Имейте в виду, что если вы уже запускали php artisan optimize -force, вам больше не нужно запускать этот. Поскольку команда optimize уже сообщает композитору создать оптимизированную автозагрузку.
Вы можете подключиться через FTP и очистить папку хранения \ framework \ views для laravel 5 или app \ storage \ views для laravel 4.
Вы можете сделать это, если используете Lumen
из Laravel
в вашем файле routes/web.php
:
use Illuminate\Support\Facades\Artisan; $app->get('/clear-cache', function () { $code = Artisan::call('cache:clear'); return 'cache cleared'; });