Команды Artisan для сброса кэша в Laravel
Кэш конфигурации объединяет все параметры приложения в один файл, который в последствии подгружается вместе с фреймворком при запуске приложения.
Очистка кэша конфигурации
Очистка данного типа кэша бывает необходимо при изменении файла .env, чтобы новые конфигурации вступили в силу:
Так же можно принудительно пересоздать кэш с новой конфигурацией, для этого нужно выполнить команду:
Таким образом, это сократит время на создание нового файла кэша.
2. Кэширование роута (маршрута)
Роуты в Laravel так же кэшируются, это сокращает время регистрации всех маршрутов вашего приложения. Иногда после регистрации маршрута требуется сбросить кэш, чтобы изменения вступили в силу. Для этих целей можно использовать команду:
Как и в предыдущем примере, эта команда очистит кэш роутов, а новый будет создан при последующем запуске приложения.
Более удобная команда для пересоздания кэша роутов:
Это быстро и удобно, старый кэш будет очищен и вместо него будет создан новый.
3. Кэширование представлений
Представления так же кэшируются в целях повышения производительности при работе приложения. В Laravel кэш представления работает в автоматическом режиме, и самостоятельно определяет было ли изменено представление после того как был создан его кэш. Если представление было изменено, кэш представления будет пересоздан.
Однако если нужно очистить кэш представления принудительно, есть команды и для этих целей.
Очистка кеша представления
Чтобы сбросить кэш представлений в Laravel, выполните команду:
Аналогичным образом можно сразу удалить и создать кэш представления с помощью другой команды:
4. Кэш событий
Часто в Laravel может использоваться встроенный механизм событий. Как известно, он так же кэшируется, и иногда может потребоваться сбросить их кэш.
Очистка кеша событий
Очистить кэш событий в Laravel можно с помощью команды:
Команда очистит кэш событий, а новый будет создан при запуске приложения Laravel. Чтобы просто перегрузить кэш, не дожидаясь повторного запуска приложения, нужно выполнить команду:
5. Кэш приложения
Кэш приложения помогает значительно экономить ресурсы сервера при хранении часто используемых данных.
Очистка кэша приложений
Иногда может потребоваться сбросить кэш приложения, это делается следующей командой:
Результат выполнения команды будет очистка кэша который располагается директории /storage/framework/cache/data/.
Этот сброс аналогичен вызову метода Cache::flush(); в коде приложения.
Важно понимать что эта команды не сбрасывает кэш конфигурации, маршрута и приложения, которые расположены отдельно в /bootstrap/cache/*.
6. Сброс всего кэша
Иногда может потребоваться сделать общий сброс кэша, использование описанных выше команд по отдельности в этом случае не совсем будет удобным. Для этих целей есть другая команда, которая по сути выполнит работу всех предыдущих команд (кроме кэша событий):
Можно так же отдельно запускать сброс кэша для скомпилированных файлов класса во фреймворке:
Laravel в классическом случае так же использует зависимости Composer Dependency Manager для PHP а также NPM для любой библиотеки JavaScript. Для повышения производительности там тоже создаётся кэш, и иногда может потребоваться сбросить его.
Очистка кэша Composer
После установки нового пакета в Composer бывает его некорректная работа. Частая причина кроется в расхождении версии отдельных библиотек. Перезагрузить автозагрузчик для приложения можно с помощью команды:
По отдельности так же можно удалить содержимое каталогов с кэшем Composer:
Очистка кэша NPM
NPM тоже имеет свой кэш, и иногда может потребоваться сбросить его. Для этого достаточно выполнить команду:
Ну вот и всё, пожалуй тут собраны все основные команды для сброса различного кэша в приложении Laravel а так же Composer и NPM.
Оптимизация производительности Laravel

С момента своего выпуска в 2011 году, Laravel стал популярным выбором для разработки бизнес-ориентированных приложений. Одна из причин, по которой Laravel очень популярен среди разработчиков, заключается в оптимизации производительности, которая позволяет разработчикам настраивать свои приложения.
В этом уроке я расскажу, как оптимизировать Laravel-приложение на продакшене.
Сервер
Предполагаю, что вы уже установили Laravel на свой сервер. У меня следующие настройки:
- Laravel 5.5
- PHP 7.1
- MYSQL
Кэширование конфигурации
В Laravel есть замечательная команда artisan cache config, которая очень полезна для повышения производительности. Основное использование команды заключается в следующем:
После запуска этой команды, не получится просто так менять конфигурационные файлы. Придется обновлять кеш, выполняя эту команду еще раз. Чтобы очистить кеш конфигурации, используйте следующую команду:
Для дальнейшей оптимизации производительности вы можете использовать OpCache, который кэширует код php, поэтому вам не придется перекомпилировать его снова и снова.
Кэш маршрутизации
Кэширование маршрутов это очень важная оптимизация, особенно если у вас много маршрутов. Кэш маршрутов — это простой массив, который помогает повысить производительность Laravel. Запустите следующую команду:
Не забывайте запускать команду каждый раз, когда вы вносите изменения в файл маршрутов или добавляете новый маршрут. Для очистки кэша используйте следующую команду:
Удаление неиспользуемых сервисов
В контексте оптимизации Laravel есть важный совет — не загружайте все службы из конфигурации. Важно отключать неиспользуемые службы из файлов конфигурации.
Оптимизация автозагрузки Composer
Рекомендуется использовать Composer для сканирования приложения и создания однозначной ассоциации классов и файлов в приложении. Используйте следующую команду:
Лимитируйте подключаемые библиотеки
Важно всегда просмотреть все библиотеки, которые вызываются в коде. Если вы думаете, что можете решить задачу без использования библиотеки — удалите ее из config/app.php, для ускорения Laravel.
JIT-компилятор
Преобразование PHP-кода в байт-код и последующее его выполнение, при каждом запросе, является ресурсоемким процессом. Поэтому, посредники, такие как Zend Engine, нужны для выполнения подпрограмм на C. Чтобы сократить это время, важно повторить этот процесс только один раз, и именно здесь компилятор Just-in-time (JIT) оказывается очень полезным. Для приложений, основанных на Laravel, рекомендуется JIT-компилятор HHVM от Facebook.
Кэш результатов запросов
Кэширование результатов часто используемых запросов — отличный способ оптимизировать ваше приложение на Laravel. Для этого я рекомендую следующее:
Используйте жадную загрузку данных
Когда Eloquent использует жадную загрузку, он загружает все связанные объектные модели в ответ на первоначальный запрос. Давайте сравним жадную загрузку (eager loading) и ленивую загрузку (lazy loading).
Запрос ленивой загрузки будет выглядеть следующим образом:
Запрос жадной загрузки будет выглядеть следующим образом:
Прекомпилирование ресурсов
Обычно разработчики размещают свой код во множестве отдельных файлах. Хотя это позволяет делать код чистым и легко управляемым, но это не способствует производительности приложения. Чтобы помочь разработчикам, Laravel предлагает простые команды:
Laravel caches and all ways to clear them
Laravel has different caches for different parts of your application and so there are multiple ways to clear the Laravel cache.
Work smarter with Tinkerwell
Write and run PHP instantly without refreshing your browser or uploading the files to a web server.
Application cache
The application cache is the primary cache in Laravel. It stores everything that you manually cache in your application. You can clear only specific elements of the cache if you use tags or different cache stores. The easiest way to clear the Laravel cache is via artisan:
Clear Laravel cache via artisan command
If you use multiple caches and you want to clear a specific store, you can pass this as a parameter to the command:
You can clear cached items with specific tags with the command:
Clear Laravel cache programmatically
Removing items from the cache programmatically is as easy as clearing the cache via the artisan command. In addition, you can use the cache facade to access the cache or use the cache helper.
Clearing cached items with the tag awesome-tag is as easy as purging a specific cache store:
Whenever I want to check if there is an item in the cache or remove it from the cache, I start Tinkerwell and run the commands above.
View cache
Another part of the application that has a cache is the view cache. The view cache stores rendered Blade templates to speed up your application. You can manually render all views to increase the performance by using the artisan command for it:
If you use this optimization, you have to clear the cache if you deploy new code, otherwise, Laravel uses your old views and you’ll try to debug this forever. You can clear the view cache of Laravel with the command:
Config cache
Laravel recommends caching your configuration files so that the application doesn’t need to go through all config files while it bootstraps the framework.
You can combine all config files into one large file and optimize the performance with the command:
Make sure to clear this cache if you change a configuration, for example, during a production deployment process:
Event cache
When running in production, caching the Events and their Listeners allows for efficient event handling. Laravel recommends to cache events and listeneners during your deployment process – and this means that you have to clear the event cache too.
To cache events and listeners, run the event:cache command during your deployment:
The event:cache command automatically clears all event caches, but if you have to run it manually, you can do it like this:
Route cache
The route cache is an additional performance cache that you only want to use in production and as part of your deployment process. Caching your routes drastically decreases the amount of time to register your application’s routes. You can cache the routes via:
In case you change a route or tried the cache command during development, you have to clear the route cache or your application won’t find new routes. You clear the route cache with the command:
Tinkerwell: The code runner for PHP
The must-have companion to your favorite IDE. Quickly iterate on PHP code within the context of your web application.
Laravel: clear the cache like a pro
Hundreds of developers subscribed to my newsletter.
Join them and enjoy free content about the art of crafting websites!
Table of contents

How to clear the cache
To clear the cache in Laravel, use the php artisan optimize:clear command.
Laravel will remove the config cache, the bootstrap cache, the events cache, the application cache, the routes cache and the views cache.

All of these can drastically speed up your applications. But sometimes, it comes in the way of our debugging duties.
Let’s review even more commands to help you have a more granular control over it.
How to clear the application cache (memcached, Redis)
To clear the application cache in Laravel, use the php artisan cache:clear command.
Depending on your cache driver (defined in your .env file and named CACHE_DRIVER ), Laravel will clear files on disk or data in Redis or memcached.
Now, if you just need to remove one value from the cache, the php artisan cache:forget <key> [store] does exactly that.

How to clear config cache
To clear the config cache in Laravel, use the php artisan config:clear command.
Laravel will clear the cache by deleting bootstrap/cache/config.php.
If you previously ran php artisan config:cache , you can now update values in .env file and see the changes when you run your code.

How to clear events cache
To clear the events cache in Laravel, use the php artisan event:clear command.
If you previously ran php artisan event:cache , Laravel will delete bootstrap/cache/events.php and discover all the new listeners you added to your codebase.

How to clear routes cache
To clear the routes cache in Laravel, use the php artisan route:clear command.
If you previously ran php artisan route:cache , Laravel will remove bootstrap/cache/routes-v7.php and you will be able to see all the new routes you registered using php artisan route:list .

How to clear scheduled tasks cache
To clear the scheduled tasks cache, use the php artisan schedule:clear-cache command.
Learn more about Laravel’s tasks overlap prevention, because that’s what this cache is for.
Unless you have good reasons, I discourage you to run this command in production.
How to clear views cache
To clear the views cache, use the php artisan view:clear command.
Laravel will delete the content of storage/views.
The views cache is generated every time you hit your route unless it already exists and your view didn’t change. You shouldn’t have much need for this command.

Bonus: turn off the application cache
To completely turn off the application cache, change the cache driver to null in your .env file.