>  Q&A  >  본문

해결할 수 없는 종속성(Laravel 8)

"jasny/sso" 패키지를 사용하면 다음 오류가 발생합니다.

으아악

JasnySSOServerServer.php 내부:

으아악

저도 시도해 봤습니다:

으아악

여기서 문제를 지적할 수 있는 사람이 있나요?

P粉729198207P粉729198207334일 전431

모든 응답(1)나는 대답할 것이다

  • P粉458913655

    P粉4589136552023-12-14 00:13:30

    jasny/sso는 Laravel 패키지가 아니므로 생성자를 기반으로 인스턴스화하는 방법에 대한 특정 지침 없이 컨테이너에 등록하면 안 됩니다.

    AppServiceProviderregister() 메소드에 다음 코드를 추가하세요:

    으아악

    여기서 앱 어디에서나 다음 작업을 수행할 수 있습니다.

    으아악

    바인딩에서 설정한 호출 가능 항목과 CacheInterface로 생성자를 자동으로 채웁니다(스크립트 실행 전체에 걸쳐 존재하는 이 클래스의 단일 인스턴스만 필요한 경우 바인딩 대신 $app->singleton()를 사용할 수도 있습니다).


    일반적으로 컨테이너에 등록하는 모든 것은 Laravel의 종속성 주입의 영향을 받습니다. 따라서 Laravel은 callable이 무엇인지 알 수 없기 때문에 생성자에서 알 수 없는 유형을 사용할 수 없으며, 그런 일이 발생하면 이 오류가 생성됩니다.

    일반적으로 이를 제어할 수 있는 경우 생성자에서 호출 가능한 함수를 제거하고 클래스에서 setter를 사용할 수 있습니다.

    으아악

    회신하다
    0
  • 취소회신하다