2014-02-19 34 views
0

我試圖在symfony2項目中設置metabor/statemachine-doctrine-bridge。我習慣於註冊新的捆綁包,但我不知道如何讓symfony2找到橋接。如何在symfony2中註冊一個橋?

我試圖通過使用聲明包括,但它似乎是不夠導致錯誤:

[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

需要同時配置自動加載器和指向正確的實體。

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框架中,使第三方庫準​​備好由Bundle實現。通常,這通過創建一個將庫實現到Symfony2框架中的捆綁包開始,然後將所有與該框架無關的可重用的東西從捆綁包中提取並放入一個橋中,這樣它也可以用於不使用包(例如Silex)。

在你的情況下,它應該工作,如果你正確地配置自動加載。你永遠不需要註冊一個庫到一個框架,以使PHP能夠自動加載它,這是兩件不同的事情。

+0

你說的'正確配置autoloading'意思。任何暗示,我可以做錯了什麼? – k0pernikus

+0

你是否使用作曲家安裝它? –

+0

是的,我添加了對「'metabor/statemachine-doctrine-bridge」:「dev-master」'的要求。 – k0pernikus

相關問題