저는 Symfony 3 애플리케이션을 개발 중입니다. Symfony 프로파일러 로그에 다음 내용이 나와 있습니다.
으아아아그러나 이는 단순한 ORM Bean입니다.
으아아아이 문제를 어떻게 해결해야 하나요? services.yaml
에서 ORM 엔터티를 서비스로 선언해야 합니까? 그렇다면 어떻게 해야 합니까?
UPDATE 실제로 내 항목은 하위 디렉터리에 있습니다. 내 질문을 수정했습니다.
내 service.yaml
에서 다음을 시도했습니다.
...하지만 효과는 없습니다.
P粉2810894852023-11-06 19:06:16
엔터티를 생성자 매개변수로 사용하는 서비스 자동 등록 클래스가 있나요?
여기에 문제가 있습니다.
이 관련 클래스가 실제로 서비스인지 아니면 항상 직접 인스턴스를 생성하는 일반 객체인지 스스로에게 물어봐야 합니다.
컨테이너를 통해 서비스로 사용되지 않는 경우 다음 두 가지 옵션이 있습니다.
다음과 같은 전역 패턴을 통해 이 클래스를 제외할 수 있습니다.
으아악또는 구성에서 다음 매개변수를 설정할 수 있습니다.
으아악이 옵션을 사용하면 컨테이너는 서비스로 사용할 수 없는 매개변수를 사용하여 서비스 클래스를 생성하려고 시도하지 않으며 결정적인 오류가 발생합니다. SF4의 기본 설정입니다.
이 오류를 유발하는 좋은 예는 생성자에서 엔터티를 페이로드로 사용하는 사용자 정의 이벤트 클래스입니다.
으아악이제 이 파일을 특별히 제외하지 않으면 컨테이너는 자동으로 해당 파일을 서비스로 등록하려고 시도합니다. 솔리드 바디가 제외되므로 자동 연결이 불가능합니다. 그러나 3.4에는 이 경고를 발생시키는 대체 메커니즘이 있습니다. strict_mode가 활성화되면 이벤트를 서비스로 사용할 수 없으며 서비스로 사용하려고 하면 오류가 발생합니다.