Yii - 扩展控制器或CController?

时间:2012-09-27 11:27:37

标签: controller yii class-design

我需要创建一个类,我们应该在所有控制器上共享相同的方法,或者几乎所有控制器共享相同的方法。

所以,我一直在寻找扩展控制器,但是,我注意到Controller Class已经扩展了另一个类CController

我很困惑。

我们是否应该创建自己的类并扩展 CController,或扩展 Controller USE {{ 1}}类无论如何?

3 个答案:

答案 0 :(得分:3)

您可以在控制器中编写您的公共/共享方法,此类仅为此目的而创建(这是您的类,无论您想做什么)。无需创建另一个类。

答案 1 :(得分:1)

他们之间有一点差别;控制器只是CController的子类。

在测试应用程序中,它用于向从Controller派生的所有控制器中提供其他变量。例如,它用于为布局视图文件设置$breadcrumbs$layout和菜单$variables

在项目中扩展YII基类(以'C'符号开头)是一个很好的做法 - YII框架更新不会触及基类,代码会更加分离。

答案 2 :(得分:0)

Controller只是CController的子类。 在这个类代码中为$ layoutcrumbs,$ layout和menu $变量定义了布局。 如果您在SiteController中使用CController而不是控制器,那么您将收到错误。