2014-02-19 4 views
0

symfony2 프로젝트 내에서 metabor/statemachine-doctrine-bridge을 설정하려고했습니다. 새로운 번들을 등록하는 데 익숙하지만 symfony2에서 브리지를 찾는 방법을 알지 못합니다. symfony2에서 브리지를 등록하는 방법은 무엇입니까?

나는 use 문을 통해 등 시도했지만 충분히 오류가 발생하지 것 같다 :

[Doctrine\Common\Persistence\Mapping\MappingException]                            
    The class 'Metabor\Bridge\Doctrine\Statemachine\State' was not found in the chain configured namespaces Hn\AssetDbBundle\Entity, Hn\UserBundle\Entity, FOS\UserBun 
    dle\Entity, FOS\UserBundle\Model 

답변

0

autoloader와 point doctrine을 모두 올바른 엔티티로 구성해야합니다.

app/config.yml

:

orm: 
    auto_generate_proxy_classes: "%kernel.debug%" 
    auto_mapping: true 
    mappings: 
     MetaborBridge: 
      type: annotation 
      dir: %kernel.root_dir%/../vendor/metabor/statemachine-doctrine-bridge/src/Metabor 
      prefix: Metabor 
      is_bundle: false 

composer.json :

... 
"autoload": { 
    "psr-0": { 
     "": "src/", 
     "Metabor": "vendor/metabor/statemachine-doctrine-bridge/src/Metabor/", 
     "MetaborStd": "vendor/metabor/metabor-std/src/MetaborStd/" 
    } 
}, 
... 
0

만 번들을 등록 할 수 있습니다. 브릿지는 특정 태스크가있는 라이브러리 일뿐입니다. Symfony2 프레임 워크에서 번들로 구현할 타사 라이브러리 준비. 일반적으로 이것은 Symfony2 프레임 워크에 라이브러리를 구현하는 번들을 생성 한 다음, 프레임 워크에 특별히 묶이지 않은 재사용 가능한 모든 물건을 번들에서 추출하여 브리지에 넣기 시작하므로 어디에서 사용할 수 있습니다. 번들은 사용되지 않습니다 (예 : Silex).

자동 로딩을 올바르게 구성한 경우 문제가 해결됩니다. PHP가 자동로드 할 수있게하기 위해 프레임 워크에 라이브러리를 등록 할 필요는 없습니다. 이것은 두 가지입니다.

+0

당신은'올바르게 구성 autoloading' 무엇을 의미합니까. 내가 잘못했을 수있는 것에 대한 어떤 암시라도? – k0pernikus

+0

작곡가를 사용하여 설치 했습니까? –

+0

예, "metabor/statemachine-doctrine-bridge"에 대한 요구 사항 인 "dev-master"를 추가했습니다. – k0pernikus