>백엔드 개발 >PHP 튜토리얼 >Symfony 3: 사용자 정의 네임스페이스를 사용하여 번들을 생성한 후 ClassNotFoundException이 발생하는 이유는 무엇입니까?

Symfony 3: 사용자 정의 네임스페이스를 사용하여 번들을 생성한 후 ClassNotFoundException이 발생하는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-27 03:55:11476검색

Symfony 3: Why Get a ClassNotFoundException After Generating a Bundle with a Custom Namespace?

번들 생성 후 Symfony3 클래스를 찾을 수 없음 예외

generate:bundle 명령을 사용하여 Symfony3에서 새 번들을 생성할 때 다음과 같은 문제가 발생할 수 있습니다. 새로 생성된 번들에 대한 ClassNotFoundException입니다. 이 문제는 특히 번들 생성 중에 사용자 정의 네임스페이스가 도입될 때 발생합니다.

근본 원인은 generate:bundle 명령이 새 네임스페이스를 포함하도록 작곡가.json의 자동 로드 섹션을 업데이트하는 것을 무시한다는 사실에 있습니다. 결과적으로, 서버가 다시 시작될 때 오토로더는 번들 클래스를 찾을 수 없습니다.

이 문제를 해결하려면 작곡가.json을 수동으로 편집하고 psr-4 섹션에 다음 코드를 추가하세요.

"Paul\": "src/Paul"

이것은 자동 로더에게 src 디렉토리에서 Paul 네임스페이스를 찾을 수 있는 위치를 알려줍니다.

composer.json이 업데이트되면 오토로더를 새로 고치고 서버를 다시 시작하려면 다음 명령을 따르십시오(필요한 경우):

composer dumpautoload

이 단계 후에 ClassNotFoundException이 해결되어야 하며 예상대로 번들에 액세스할 수 있습니다.

추가 사항:

  • 이 문제는 Symfony 3.2 이후부터 발생하기 시작했습니다. 기본 psr-4 네임스페이스 매핑을 ""에서 AppBundle\로 변경했습니다.
  • 원하는 경우 작곡가.json을 수정하여 이전 네임스페이스 매핑으로 되돌릴 수 있습니다.
  • 자세한 내용은 다음을 참조하세요. GitHub 문제: https://github.com/symfony/symfony-standard/issues/1098

위 내용은 Symfony 3: 사용자 정의 네임스페이스를 사용하여 번들을 생성한 후 ClassNotFoundException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.