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

时间:2011-05-05 18:24:04

标签: yii

我有以下结构:

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']);

网址如下:

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

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

  

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

答案取决于几件事:

  • 您是否参加了第三方的论坛,图库和活动模块?
  • 论坛,图库和活动是否包含自己的模型,视图和控制器?
  • 您是否打算制作其他人可以在Yii应用程序中使用的论坛,图库和活动独立模块?

如果上述任何一项,那么是的,将它们放入自己的模块中是有意义的。否则,将它们添加到group模块将是首选。

根据Yii文件:

  

模块是一个独立的软件   由模型,视图组成的单元,   控制器和其他支持   组件。


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