我需要创建一个类,我们应该与我的所有控制器共享相同的方法,或者几乎所有控制器。
所以,我一直在寻找扩展控制器,但是,我注意到Controller Class
已经扩展了另一个类CController
。
我很困惑。
我们应该创建自己的类并扩展 CController
、扩展 Controller
或使用 Controller
类吗?
我需要创建一个类,我们应该与我的所有控制器共享相同的方法,或者几乎所有控制器。
所以,我一直在寻找扩展控制器,但是,我注意到Controller Class
已经扩展了另一个类CController
。
我很困惑。
我们应该创建自己的类并扩展 CController
、扩展 Controller
或使用 Controller
类吗?
您可以在Controller中编写您的公共/共享方法,该类仅用于此目的(即您的类,做任何您想做的事)。无需创建另一个类。
它们之间有一点区别;控制器只是CController
.
在测试应用程序中,它用于为从 Controller 派生的所有控制器提供附加变量。例如,它用于布局视图文件的设置$breadcrumbs
和$layout
菜单。$variables
在您的项目中扩展YII
基类(以“C”符号开头)是一种很好的做法——框架更新不会触及基类,YII
并且代码会更加解耦。
Controller 只是 CController 的一个子类。在此类代码中,定义了布局的 $breadcrumbs、$layout 和菜单 $variables。如果你在 SiteController 中使用 CController 而不是控制器,你会得到错误。