제 symfony 프로젝트에는 두 개의 번들이 있습니다. 내 첫 번째 번들 (Bundle1)은 기본 번들이고 두 번째 번들 (Bundle2)은 일부 서비스를 저장하는 데 사용됩니다. 여기 번들 서비스 - 네임 스페이스에서 클래스를로드하려고 시도했습니다.
내 service.yml (Bundle2)입니다 :services:
sc_ezpublish_helpers.generic_find:
class: SC\EzPublishHelpersBundle\Helper\GenericFindHelper
그리고 Bundle1에서이 같은 내 서비스 전화를 사용
$findHelper = $this->get('sc_ezpublish_helpers.generic_find');
캐시를 제거한 후 내가 가진이 오류 :
"SC \ EzPublishHelpersBundle \ Helper"네임 스페이스에서 "GenericFindHelper"클래스를로드하려고 시도했습니다. 다른 네임 스페이스에 "사용"문을 잊어 버렸습니까?
스택 추적
에서 응용 프로그램/캐시는/dev/appDevDebugProjectContainer.php 라인에서 20,582 -
여기*/
protected function getScEzpublishHelpers_GenericFindService()
{
return $this->services['sc_ezpublish_helpers.generic_find'] = new \SC\EzPublishHelpersBundle\Helper\GenericFindHelper($this->get('ezpublish.signalslot.repository'), $this->get('ezpublish.config.resolver.core'));
}
/**
는 composer.json
"autoload": {
"psr-4": {
"": "src/"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
내 자동로드입니다 그리고 여기 Bundle2 구조가 있습니다
src/
├── SC
│ └── EzPublishHelpersBundle
│ ├── DependencyInjection
│ │ ├── Configuration.php
│ │ └── SCEzPublishHelpersExtension.php
│ ├── Helpers
│ │ └── GenericFindHelper.php
│ ├── Resources
│ │ └── config
│ │ └── services.yml
│ └── SCEzPublishHelpersBundle.php
아이디어가 있으십니까? 내가 뭔가 잊었 니?
감사합니다.
자동로드 문제와 비슷합니다. 폴더 구조가 네임 스페이스와 일치하는지 확인하고 composer.json의 autoload 섹션을 여기에 추가 할 수 있습니까 – dbrumann
아마도 내 번들의 이름이 변경 되었나요? 그러나 나는 도처에서 수색했고 뭔가를 잊었을 때 찾을 수 없습니다 ... 그리고 내 자동로드로 내 메시지를 업데이트했습니다 – ReaperSoon
그 경우 폴더 구조를 보여주십시오. 파일은'src/SC/EzPublishHelpersBundle/Helper/GenericHelper.php'에 위치해야합니다. – dbrumann