所有模块控制器下的项目结构和共享变量



我有以下结构:

modules/group
modules/group/modules/forum
modules/group/modules/gallery
modules/group/modules/events

这是组织组的正确方法吗?或者更好

modules/group
modules/group/controllers/ForumController.php
modules/group/controllers/GalleryController.php
modules/group/controllers/EventsController.php

还有一个问题。我需要在组模块下的所有动作控制器组对象,我不想在所有控制器中编写以下代码

$group = Group::model()->findByPk($_GET['idgroup']);

url如下:

/group/<idgroup>/forum/<idforum>
/group/<idgroup>/gallery/<idgallery>

正确的方法是什么?

这是正确的结构方式吗组吗?

答案取决于以下几点:

  • 您是否从第三方拉论坛,画廊和活动模块?
  • 论坛、画廊和事件是否包含自己的模型、视图和控制器?
  • 你打算制作论坛,画廊和事件独立模块,其他人可以在他们的Yii应用程序中使用?

如果是以上任何一个,那么是的,将它们放入它们自己的模块中是有意义的。否则,最好将它们添加到group模块中。

根据Yii文档:

模块是一个自包含的软件由模型、视图、控制器和其他支持组件。


关于将组对象添加到所有控制器动作,通常我会为我的模块(如/group/components/GroupController.php)添加一个基本控制器类,并扩展该控制器,而不是我所有控制器中的基础控制器。GroupController应该扩展Yii的CController,并包含您想要从模块的控制器访问的组对象。

最新更新