如何在Sylius中同时处理插件和主题?

时间:2018-02-27 15:15:29

标签: symfony sylius

我使用插件骨架创建了一个项目。 现在我怎样才能让主题与插件同时工作?

我可以在app

下创建主题包或添加视图

Sylius文件说 - 加载顺序(优先级下降):

App templates:
<Theme>/views (NEW!)
app/Resources/views
Bundle templates:
<Theme>/<Bundle name>/views (NEW!)
app/Resources/<Bundle name>/views
<Bundle>/Resources/views

我可以注册一个主题包,并与tests/app/AppKernel.php

中的插件同时工作

1 个答案:

答案 0 :(得分:1)

这取决于你的用例。我会尝试识别一些。

<强> 1。与他人共享插件

如果您想与其他人共享您的插件/包(例如开源),最好在插件中包含插件特定视图。它允许其他开发人员在他们自己的主题内或他们的app/Resources文件夹中覆盖它们。如果他们只是喜欢这些视图,除了加载插件之外,他们不需要做任何事情。

<强> 2。与其他项目共享视图

假设你想在几个自己的项目中使用你的插件,但可能需要调整一些视图。您仍然会将默认视图放在插件中,如上所述,但如果某些项目需要在该项目或某些项目中稍作调整,则可以在该主题中覆盖它们。也可以从存储库加载主题,从而使您可以开源主题或在多个项目中内部使用它。

第3。不分享

在这种情况下,我认为这取决于您自己的偏好放置它们。我自己仍然会用插件保存它们并在主题中覆盖它们。如果我的特定应用仍然需要采取不同的行为,app/Resources是最后的选择。将视图放置在插件内或主题内部将允许您(如果将它们放在存储库中)轻松地将它们加载到另一个项目中。除此之外,您还可以通过将功能组合在一起来分担责任。

小结

基本上它取决于您的需求,但如果您想与他人分享您的插件和/或主题,请务必先将文件放在插件中,然后在主题内进行任何调整。

仅供内部使用吗?在这种情况下,这取决于您的偏好,但我仍然会记住可维护性和可重用性,因此将它们与引入附带功能的部分放在一起。