Có nên Inject Request vào phương thức boot()trong AppServiceProvider?❌
Inject vào phương thức boot() ❌
public function boot(Request $request)
PHPRủi ro
- Không thể inject trực tiếp Request vào boot() vì request chưa được khởi tạo hoàn chỉnh tại thời điểm service provider chạy.
- Điều này có thể gây ra lỗi “Unresolvable dependency”, đặc biệt trong các lệnh Artisan (
php artisan migrate
,php artisan config:cache
, v.v.), vì khi chạy các lệnh này không có HTTP request nào tồn tại.
Cách khắc phục ✅
Thay vì inject Request vào boot(), hãy lấy nó bằng cách sử dụng app(Request::class):
public function boot()
{
$request = app(Request::class); // Lấy request một cách an toàn
}
PHP