Php 在供应商捆绑包中注册捆绑包

Php 在供应商捆绑包中注册捆绑包,php,symfony,fosuserbundle,Php,Symfony,Fosuserbundle,我不完全理解这个包的结构。 我创建了一个bundle,它的父对象是FOSUserBundle。我想在其他symfony2安装中使用我创建的SHN/UserBundle 在目标应用程序中,我收到一个 LogicException: Bundle "SHNUserBundle" extends bundle "FOSUserBundle", which is not registered. 我的意思是我扩展了应该自动注册的fosuserbundle,因为我的SHN/UserBundle使用它 我的

我不完全理解这个包的结构。 我创建了一个bundle,它的父对象是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",

您确实对bundle继承模型有误解。这不是父母/子女关系(是的,名称非常混乱…)

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

这更像是一种超越关系


这意味着FOSUserBundle还需要注册。

好的,那么我不想在目标应用程序中的composer.json的require部分添加FOSUserBundle。因为它已经在我的供应商包SHN/Userbundle的供应商文件夹中。如何从该位置注册?我遇到了这个异常:试图从/var/www/shn/app/AppKernel.php第21行中的名称空间“FOS\UserBundle”加载类“FOSUserBundle”。您需要从另一个名称空间“使用”它吗?有人知道这一点吗?您是否使用composer安装了该软件包?如果是这样,composer应该为您执行此操作。我使用composer安装所有软件包。我的Application composer.json具有require entrie:“SHN/Userbundle”:“dev master”,但如果我没有在AppKernel中注册FOSUserBundle,它将失败,并出现LogicException:Bundle“SHNUserBundle”扩展Bundle“FOSUserBundle”,该Bundle未注册。