我想基于主要捆绑包制作应用程序,让其他开发者能够使用自己的捆绑包来实现其他功能 。
Symfony 2.0似乎是一个很好的选择,但我无法弄清楚如何让捆绑在一起工作,同时保留解耦。
在MainBundle中,我将创建一个Controller,生成 Users-List ,如下所示:
user1 edit remove
user2 edit remove
....
如何让第三方捆绑包将自定义按钮添加到此列表中?
例如 AvatarBundle 可能想要添加按钮来上传图片, SendEmailBundle 我想添加按钮发送电子邮件给用户等等。
如何保持捆绑独立性?我该怎么做?
非常感谢, 马西莫
答案 0 :(得分:0)
据我所知,在提供的捆绑包中只有两种更改/添加功能的方法。
在这种情况下,第二个似乎更可取。 覆盖模板的方法是:
如果你也想要覆盖控制器,第二种方式是唯一的方法。 这也是我个人的偏好,因为在我认为它更清晰,然后将特定的东西放在一般的app-folder中。
无论如何,在FOSUserBundle的文档中有更好的解释:
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_templates.md
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_forms.md
当然,这本食谱文章:
http://symfony.com/doc/current/cookbook/bundles/inheritance.html
希望这有帮助,
迪特
答案 1 :(得分:0)
如果您知道捆绑包的哪些部分将被扩展,您可以使用服务(与tiwg捆绑包使用它们添加新的模板过滤器/标签/帮助器的方式相同)。 然后,您的捆绑包将“扫描”DIC中定义的服务(具有已定义的标记),然后调用它们以获取信息(在您的情况下为按钮定义)。