我试图在symfony2项目中设置metabor/statemachine-doctrine-bridge。我习惯于注册新的捆绑包,但我不知道如何让symfony2找到桥。
我尝试通过 use 语句包含它,但似乎还不够导致错误:
[DoctrineCommonPersistenceMappingMappingException]
The class 'MetaborBridgeDoctrineStatemachineState' was not found in the chain configured namespaces HnAssetDbBundleEntity, HnUserBundleEntity, FOSUserBun
dleEntity, FOSUserBundleModel
只能注册捆绑包。桥只是具有特定任务的库:使第三方库准备好由Symfony2框架中的捆绑包实现。通常,这首先创建一个将库实现到Symfony2框架中的捆绑包,然后从捆绑包中提取所有未明确绑定到框架的可重用内容并放在桥中,因此它也可以在不使用捆绑包的地方使用(例如Silex)。
在您的情况下,如果您正确配置了自动加载,它应该可以工作。你永远不必为了使PHP能够自动加载它而将库注册到框架中,这是两件不同的事情。
需要配置自动加载器并将原则指向正确的实体。
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/"
}
},
...