자동 등록 서비스 오류: ORM 엔터티에 따라 다름
P粉872182023
P粉872182023 2023-11-05 20:56:05
0
1
883

저는 Symfony 3 애플리케이션을 개발 중입니다. Symfony 프로파일러 로그에 다음 내용이 나와 있습니다.

으아아아

그러나 이는 단순한 ORM Bean입니다.

으아아아

이 문제를 어떻게 해결해야 하나요? services.yaml에서 ORM 엔터티를 서비스로 선언해야 합니까? 그렇다면 어떻게 해야 합니까?

UPDATE 실제로 내 항목은 하위 디렉터리에 있습니다. 내 질문을 수정했습니다.

service.yaml에서 다음을 시도했습니다.

으아아아

...하지만 효과는 없습니다.

P粉872182023
P粉872182023

모든 응답(1)
P粉281089485

엔터티를 생성자 매개변수로 사용하는 서비스 자동 등록 클래스가 있나요?

여기에 문제가 있습니다.

이 관련 클래스가 실제로 서비스인지 아니면 항상 직접 인스턴스를 생성하는 일반 객체인지 스스로에게 물어봐야 합니다.

컨테이너를 통해 서비스로 사용되지 않는 경우 다음 두 가지 옵션이 있습니다.

다음과 같은 전역 패턴을 통해 이 클래스를 제외할 수 있습니다.

으아악

또는 구성에서 다음 매개변수를 설정할 수 있습니다.

으아악

이 옵션을 사용하면 컨테이너는 서비스로 사용할 수 없는 매개변수를 사용하여 서비스 클래스를 생성하려고 시도하지 않으며 결정적인 오류가 발생합니다. SF4의 기본 설정입니다.

이 오류를 유발하는 좋은 예는 생성자에서 엔터티를 페이로드로 사용하는 사용자 정의 이벤트 클래스입니다.

으아악

이제 이 파일을 특별히 제외하지 않으면 컨테이너는 자동으로 해당 파일을 서비스로 등록하려고 시도합니다. 솔리드 바디가 제외되므로 자동 연결이 불가능합니다. 그러나 3.4에는 이 경고를 발생시키는 대체 메커니즘이 있습니다. strict_mode가 활성화되면 이벤트를 서비스로 사용할 수 없으며 서비스로 사용하려고 하면 오류가 발생합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿