4

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

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

我很困惑。

我们应该创建自己的类并扩展 CController扩展 Controller使用 Controller类吗?

4

3 回答 3

3

您可以在Controller中编写您的公共/共享方法,该类仅用于此目的(即您的类,做任何您想做的事)。无需创建另一个类。

于 2012-09-27T11:34:00.300 回答
1

它们之间有一点区别;控制器只是CController.

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

在您的项目中扩展YII基类(以“C”符号开头)是一种很好的做法——框架更新不会触及基类,YII并且代码会更加解耦。

于 2016-07-10T17:17:32.190 回答
0

Controller 只是 CController 的一个子类。在此类代码中,定义了布局的 $breadcrumbs、$layout 和菜单 $variables。如果你在 SiteController 中使用 CController 而不是控制器,你会得到错误。

于 2012-12-10T12:55:48.097 回答