考虑我有一些默认包的情况,假设在左边创建一些带有菜单的空页和一些内容(如果有的话)。然后我创建一个新的包,我通常在AppKernel中打开它。现在应该魔术开始:他自己捆绑(不需要在默认包中添加任何选项等)连接并创建他的菜单条目(如果选择,则呈现他的内容)。我应该怎么做,有没有正确的方法来做到这一点?如果我想要多个“挂钩”,例如,在用户个人资料编辑中添加新表单,或在其他地方添加新标签,该怎么办?
我正在考虑寻找一些我可以收听并通过它传递数据的“初始化捆绑事件”。但也许有更好的解决方案。我很想看到你的想法:)
答案 0 :(得分:2)
查看initializeBundles
的{{1}}方法,在启动过程中动态添加bundle看起来并不容易。
但是,AppKernel.php文件位于最前端,它是Kernel
的覆盖,可以自定义为实现的Kernel
方法提供动态的一组包。
您需要确保将导入的内容正确添加到自动装带器中,但避免在运行时修改分发源,尽量使其尽可能导入。
我不想详细介绍技术细节,因为我自己没有这样做,需要大量的实验。我知道Drupal 8使用Symfony2并拥有自己的插件系统,但我不认为它需要捆绑包作为插件。
如果您设法将其关闭,我怀疑它将允许应用程序和插件之间100%集成,但请注意,它还允许100%覆盖对所述插件的访问。