Команда route:cache
Команда route:cache создает кеш-файл маршрутов, который Laravel использует для быстрой регистрации всех маршрутов вашего приложения. Это особенно полезно в production-среде, где скорость загрузки имеет критическое значение. Кеш маршрутов хранится в файле bootstrap/cache/routes-v7.php и содержит все маршруты, зарегистрированные через фасады Route и файлы routes/web.php и routes/api.php.
При выполнении команды происходит сканирование всех файлов маршрутов, их компиляция в оптимизированный PHP-код и сохранение в кеш. При последующих запросах Laravel загружает этот кеш вместо повторного анализа файлов маршрутов, что существенно сокращает время выполнения. Однако важно помнить, что после добавления или изменения маршрутов необходимо обновить кеш.
Синтаксис
php artisan route:cache
Команда не принимает аргументов. При успешном выполнении выводит сообщение об успешном кешировании маршрутов.
Пример
Рассмотрим базовое использование команды для кеширования маршрутов в приложении:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::get('/users', function () {
return 'User list';
});
Route::get('/posts', function () {
return 'Post list';
});
?>
php artisan route:cache
Результат выполнения команды:
"Routes cached successfully!"
После этого все маршруты загружаются из кеша, что ускоряет работу приложения.
Пример
Посмотрим, как команда работает с файлом маршрутов API:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\UserController;
Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
Route::get('/users/{id}', [UserController::class, 'show']);
Route::put('/users/{id}', [UserController::class, 'update']);
Route::delete('/users/{id}', [UserController::class, 'destroy']);
?>
php artisan route:cache
Результат выполнения команды:
"Routes cached successfully!"
Теперь все API-маршруты закешированы и доступны для быстрой регистрации.
Пример
Важно использовать команду в паре с очисткой кеша при изменении маршрутов:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/about', function () {
return view('about');
});
// New route added
Route::get('/contact', function () {
return view('contact');
});
?>
php artisan route:clear
php artisan route:cache
Результат выполнения команд:
"Route cache cleared!"
"Routes cached successfully!"
Сначала очищается старый кеш, затем создается новый с обновленными маршрутами.
Смотрите также
-
команда
route:clear,
которая удаляет кеш маршрутов -
команда
route:list,
которая выводит список всех зарегистрированных маршрутов -
команда
config:cache,
которая создает кеш конфигурации приложения -
команда
optimize,
которая выполняет кеширование всех компонентов приложения