Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2捆绑包作为插件_Php_Symfony_Architecture - Fatal编程技术网

Php Symfony2捆绑包作为插件

Php Symfony2捆绑包作为插件,php,symfony,architecture,Php,Symfony,Architecture,考虑这样一种情况,我有一些默认包,假设创建了一些空白页面,左侧有菜单和一些内容(如果有的话)。然后我创建一个新的包,通常在AppKernel中打开它。现在,魔术师应该开始了:他自己的bundle(不需要在默认bundle中添加任何选项等)连接并创建他的菜单项(如果选中,则呈现他的内容)。我应该怎么做,有没有合适的方法?如果我想有多个“钩子”,例如,在用户配置文件编辑中添加新表单,或者在其他地方添加新选项卡,该怎么办 我正在考虑寻找一些“初始化包事件”,我可以监听并通过它传递数据。但也许有更好的解

考虑这样一种情况,我有一些默认包,假设创建了一些空白页面,左侧有菜单和一些内容(如果有的话)。然后我创建一个新的包,通常在AppKernel中打开它。现在,魔术师应该开始了:他自己的bundle(不需要在默认bundle中添加任何选项等)连接并创建他的菜单项(如果选中,则呈现他的内容)。我应该怎么做,有没有合适的方法?如果我想有多个“钩子”,例如,在用户配置文件编辑中添加新表单,或者在其他地方添加新选项卡,该怎么办


我正在考虑寻找一些“初始化包事件”,我可以监听并通过它传递数据。但也许有更好的解决办法。我很想看看你的想法:)

看看
内核的
初始化bundles
方法,在启动过程中动态添加bundles看起来并不容易

然而,AppKernel.php文件是最重要的,它是对
内核
的重写,可以进行定制,为实现的
注册绑定
方法提供一组动态绑定

您需要确保导入的内容已正确添加到自动加载程序中,但要避免在运行时修改分发源,请尽量将其导入

我不想详细讨论技术细节,因为我自己没有做过,这需要大量的实验。我知道Drupal8使用Symfony2并有自己的插件系统,但我不认为它将捆绑包作为插件

如果你成功地做到了这一点,我怀疑它将允许应用程序和插件之间的100%集成,但请注意,它也允许100%覆盖访问所述插件