Команда config:cache
Команда config:cache собирает все файлы конфигурации из директории config и объединяет их в один кэшированный файл, который располагается по пути bootstrap/cache/config.php. Это позволяет уменьшить количество операций чтения файлов при каждом запросе, так как Laravel загружает конфигурацию из кэша, а не из отдельных файлов.
Важно понимать, что команда не принимает дополнительных аргументов или опций. Она просто выполняет кэширование всей конфигурации и очищает старый кэш перед созданием нового. Команда должна выполняться только на production-сервере, так как в процессе разработки конфигурация часто меняется, и кэш может стать неактуальным.
При выполнении команды Laravel проходит по всем файлам в директории config, загружает их с помощью функции config и сохраняет в единый массив в кэш. После этого приложение будет использовать этот кэш для получения значений конфигурации через вспомогательную функцию config.
Синтаксис
php artisan config:cache
Пример
Выполним команду для кэширования конфигурации в production-окружении:
php artisan config:cache
Результат выполнения команды:
Configuration cached successfully.
После выполнения команды все файлы конфигурации будут объединены в один кэшированный файл. Для проверки можно просмотреть содержимое файла кэша:
php -r "print_r(include 'bootstrap/cache/config.php');"
Результат выполнения кода (пример вывода массива конфигурации):
["app" => ["name" => "Laravel", "env" => "production"], "database" => ["connections" => ["mysql" => ["host" => "127.0.0.1", "database" => "myapp"]]]]
Пример
Рассмотрим ситуацию, когда в процессе разработки были изменены настройки базы данных, и нужно обновить кэш конфигурации. Сначала выполним команду кэширования:
php artisan config:cache
Теперь проверим, что новое значение конфигурации доступно в приложении через консоль Tinker:
php artisan tinker
В консоли Tinker выполним код для получения значения конфигурации:
<?php
$res = config('database.connections.mysql.database');
echo $res;
?>
Результат выполнения кода:
"myapp"
Если бы команда config:cache не была выполнена после изменений, то приложение продолжало бы использовать старое значение из кэша.
Смотрите также
-
команда
config:clear,
которая удаляет кэш конфигурации -
команда
cache:clear,
которая очищает весь кэш приложения -
команда
optimize,
которая кэширует конфигурацию, маршруты и представления одновременно -
команда
route:cache,
которая кэширует маршруты приложения