|
|
|
|
移动端

2.8 Yii框架中的控制器

《Yii框架深度剖析》第2章Yii框架基础,从本章开始,我们将通过由浅入深的方式介绍Yii框架的各个部分,希望读者逐步了解Yii框架。本节为大家介绍Yii框架中的控制器。

作者:刘琨来源:人民邮电出版社|2017-11-23 18:03

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


2.8 Yii框架中的控制器

Yii框架中的控制器是CController或其子类的实例,它在用户请求时由应用创建。当一个控制器运行时,它执行所请求的动作,动作通常会引入所必要的模型并渲染相应的视图。动作的最简形式,就是一个名字以action开头的控制器类方法。

下面的代码定义了MessageController控制器类,其中包括动作方法actionOutput(),保存在MessageController.php文件中。

  1. class MessageController extends CController{  
  2. public function actionOutput()  
  3. {  
  4. $this->render('helloWorld');  
  5. }  

注意:

控制器通常有一个默认的动作。当用户的请求未指定要执行的动作时,默认动作将被执行。默认情况下,默认的动作名为index。它可以通过设置CController::defaultAction修改。

在Yii框架自带的演示代码中,有的控制器继承Controller类,有的却继承了CController类,CController和Controller的关系是什么?首先来分析下面的源码。

  1. <?php 
  2. /**  
  3. * Controller is the customized base controller class.  
  4. * All controller classes for this application should extend from this base class.  
  5. */  
  6. class Controller extends CController  
  7. {  
  8. /**  
  9. * @var string the default layout for the controller view. Defaults to  
  10. '//layouts/column1',  
  11. *meaning using a single column layout. See 'protected/views/ layouts/  
  12. column1.php'.  
  13. */  
  14. public $layout='//layouts/column1';  
  15. /**  
  16. * @var array context menu items. This property will be assigned to {@link  
  17. CMenu::items}.  
  18. */  
  19. public $menu=array();  
  20. /**  
  21. * @var array the breadcrumbs of the current page. The value of this  
  22. property will  
  23. * be assigned to {@link CBreadcrumbs::links}. Please refer to {@link  
  24. CBreadcrumbs::links}  
  25. * for more details on how to specify this property.  
  26. */  
  27. public $breadcrumbs=array();  

由源码可知,Controller是CController的子类,作为一个组件保存在Components文件夹下,定义了$breadcrumbs、$layout和$menu 3个成员属性的值,这3个成员属性可以在布局文件中使用。

提示:

通过这两个类可知,在使用Yii框架创建应用时,可以继承所有的框架自带类,并且可以根据需要重新定义public类型成员属性的值。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

2006软考上半年试题分析与解答

本书是针对全国计算机技术与软件专业技术资格(水平)考试而编写的,书中详尽分析与解答了2006年上半年的程序员级、软件设计师级、软件评测...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊