Php Symfony:在另一个第三方包中使用第三方服务

Php Symfony:在另一个第三方包中使用第三方服务,php,symfony,Php,Symfony,我正在编写一个第三方包(我们称之为Bundle1),它需要使用另一个第三方包(Bundle2)。我已经在Bundle1的composer.json中声明了依赖项,因此Bundle2已成功下载 但在我的AppKernel.php中,我只声明了Bundle1: $bundles = [ new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), [...] new MyCompany\Bundle1(),

我正在编写一个第三方包(我们称之为Bundle1),它需要使用另一个第三方包(Bundle2)。我已经在Bundle1的
composer.json
中声明了依赖项,因此Bundle2已成功下载

但在我的AppKernel.php中,我只声明了Bundle1:

$bundles = [
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        [...]
        new MyCompany\Bundle1(),
    ];
据我所知,在这里声明Bundle2是不正确的。所以很明显,我无法在我的应用程序中访问Bundle2提供的任何服务。就我的应用程序而言,这没关系,但我需要Bundle1在它自己的内部类中使用这些服务

如何将它们传递给Bundle1,以及如何使用它们?我应该在Bundle1的
services.yml
中声明它们,并将它们指向Bundle2的类吗?我想这与Bundle2自己的服务是重复的?我想不出任何其他的方法来做到这一点

实现这一目标的正确方法是什么?非常感谢


顺便问一下,我正在运行Symfony 3.2.4。

是什么让你认为Bundle2不应该添加到AppKernel中?假设Bundle2是一个真正的Symfony bundle,那么这正是您应该做的,从而使Bundle2中声明的任何服务都可以全局访问。@yivi:谢谢。这似乎是我所需要的,尽管我真的认为core Symfony会允许这样的事情。“我发现了这个。”塞拉德:谢谢你的回答。我认为我不应该将Bundle2添加到AppKernel,因为它严格地说是Bundle1依赖项。我的应用程序不应该有任何二级依赖。但我最终可能会这么做,因为我测试了它,它可以工作。是什么让你认为Bundle2不应该添加到AppKernel中?假设Bundle2是一个真正的Symfony bundle,那么这正是您应该做的,从而使Bundle2中声明的任何服务都可以全局访问。@yivi:谢谢。这似乎是我所需要的,尽管我真的认为core Symfony会允许这样的事情。“我发现了这个。”塞拉德:谢谢你的回答。我认为我不应该将Bundle2添加到AppKernel,因为它严格地说是Bundle1依赖项。我的应用程序不应该有任何二级依赖。但我最终可能会这么做,因为我测试了它,它是有效的。