Có nên Inject Request vào phương thức boot()trong AppServiceProvider?❌

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)
PHP

Rủ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

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *