Yii模块从父模块继承


Yii module inheritance from parent module

我有一个网站在Yii 1与3个模块:

    管理
  • site1
    • site2

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

我想重新组织我的网站是一个父模块(其中持有常见的视图和控制器。模型相同)。

这方面的最佳实践是什么?

这可以有很多解决方案。你可以从这里开始:

  1. 你可以有一些公共的地方,你将保持共享代码。在这种情况下,我们可以称该目录为"common"。然后,在这个"公共"目录中,你可以根据功能来组织你的共享代码——行为、模型、组件、动作、小部件、事件,甚至视图(但我不喜欢太多的共享视图,如果你需要在多个地方使用一个视图,通常最好为它制作小部件)。你可以从应用程序配置中导入。
  2. 如果你把你的控制器分解成动作类,而不是通过将它们附加到控制器来共享控制器之间的动作,它通常更干净,更可配置(这是一个很好的例子,默认的yii应用程序中的验证码动作)。通过这种方式,你可以排除一些控制器中的动作,如果你不需要他们或混合不同的动作集,如果你需要。
  3. 关于共享视图文件,即使你可以从任何地方给出完整的路径来查看文件,如果需要从更多的控制器调用一个视图,我更喜欢使用小部件。如果你从一个控制器在多个地方调用一个视图,你可以使用renderPartial(),然后将你的视图包含到其他视图中,但如果你需要从更多的控制器调用它,而不是从组织和功能视图,使用widget要好得多。