0

我在 Yii 1 中有一个包含 3 个模块的站点:

  • 行政
  • 站点1
    • 站点2

site2 模块是 site1 的父模块。这两个模块非常相似(有些控制器是相同的)。

我想将我的站点重新组织为一个父模块(它包含公共视图和控制器。模型是相同的)。

这方面的最佳做法是什么?

4

1 回答 1

0

这可以有很多解决方案。这是您可以开始的地方:

  1. 你可以有一些共同的地方来保存共享代码。在这种情况下,我们可以将该目录称为“common”。在这个“通用”目录中,您可以根据功能组织您的共享代码 - 行为、模型、组件、动作、小部件、事件,甚至视图(但我不太喜欢共享视图,如果您需要一个视图更多放置它通常很好地为它制作小部件)。你可以从应用程序配置中导入它。
  2. 如果您将控制器分解为动作类,然后通过将控制器附加到控制器来在控制器之间共享该动作(这方面的一个很好的例子是默认 yii 应用程序中的 Catpcha 动作),它通常更清洁和更可配置。通过这种方式,如果您不需要某些控制器中的操作,您可以排除它们,或者如果您需要,可以混合不同的操作集。
  3. 关于共享视图文件,即使您可以通过提供从任何地方查看文件的完整路径来做到这一点,如果需要从多个控制器调用一个视图,我更喜欢使用小部件。如果您从一个控制器在多个位置调用一个视图,您可以使用 renderPartial() 并将您的视图包含到另一个视图中,但是如果您需要从更多控制器而不是组织和功能视图调用它,则使用小部件要好得多。
于 2014-07-12T09:44:56.857 回答