Bundle在供应商包中注册

时间:2014-10-31 11:30:02

标签: php symfony fosuserbundle

我不明白捆绑架构是否正确。 我创建了一个父,就是FOSUserBundle。我想在其他symfony2安装中使用我创建的SHN / UserBundle。

在目标应用程序中,我收到了

LogicException: Bundle "SHNUserBundle" extends bundle "FOSUserBundle", which is not registered.

我的意思是我扩展应该自动注册的fosuserbundle,因为我的SHN / UserBundle使用它?

我的思维错误在哪里?

/src/SHN/UserBundle/composer.json:

"name" : "SHN/UserBundle",
"description" : "Overwrites the FOS Userbundle with some futures",
"type" : "symfony-bundle",
"authors" : [{
    "name" : "Timo Linde",
    "email" : "timo.linde@shn-germany.de",
    "role" : "Developer"
}],
"keywords" : [
    "fos-userbundle extend"
],
"license" : [
    "proprietary"
],
"require" : {
    "php": ">=5.3.3",
    "friendsofsymfony/user-bundle": "~1.3"
},
"autoload" : {
    "psr-0" : {
        "SHN\\UserBundle" : ""
    }
},
"target-dir" : "SHN/UserBundle",

1 个答案:

答案 0 :(得分:1)

你确实对bundle继承模型有误解。它不是父/子关系(是的,这个名字很混乱......)。

想象一下模板的情况(如果你只是覆盖模板,请考虑使用the app/Resources dir instead)。当请求模板FOSUserBundle:Security:login.html.twig时,它不是直接解析@FOSUserBundle/Resources/views/Security/login.html.twig文件,而是首先查看@TheChildBundle/Resources/views/Security/login.html.twig是否存在,如果存在,它会使用那个而不是位于FOSUserBundle。

它更像是一种覆盖关系。

这意味着FOSUserBundle仍然需要注册。