我最近在一个项目中工作,在该项目中我在供应商内部构建了自己的 Bundle。这很好用。我还设法添加了我的配置依赖项和其他捆绑依赖项。
我的问题是:
我如何app/AppKernel
用我自己的内核扩展内核。我要使用的内核在供应商内部(在我创建的捆绑包内部)。
我想要完成的是:
我的捆绑包与多个域“连接”(多个项目的一个 Symfony 安装)。将来会有很多更新,我可能会添加新的 Bundle 依赖项。我不想将它们一一添加到我的所有项目中。
我试过的
我已经尝试过设置symfony-bundles/bundle-dependency
并且我已经关注了这个问题Bundles and Dependencies但看起来你之后仍然需要编辑 main AppKernel
。
还有其他建议吗?
我认为没有开箱即用的解决方案可以自动将 Composer 安装的包添加到AppKernel
. 但是,如果您的包依赖项始终由单个包指定,您可以尝试以下操作:
有一个指定的类,该类的方法返回您总是想要包含的包,例如:
class MyKernelExtension
{
public static function getBundles()
{
return [
new MyBundle(),
new MyOtherBundle,
// ...
];
}
}
在AppKernel::registerBundles()
:
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = [
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
// ...
];
$bundles = array_merge($bundles, MyKernelExtension::getBundles());
return $bundles;
}
}
您只需在 中添加一行AppKernel
,而且您永远不必更改它。然后每次更改MyKernelExtension
可安装 Composer 的包时,您只需更新它,并且捆绑包将被注册。
我不知道任何其他解决方案,但是这个解决方案似乎很简单。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句