2.4 输出“Hello World”

云计算
《Yii框架深度剖析》第2章Yii框架基础,从本章开始,我们将通过由浅入深的方式介绍Yii框架的各个部分,希望读者逐步了解Yii框架。本节为大家介绍输出“Hello World”。

2.4 输出“Hello World”

首先,在新的应用上编写一个“Hello World”程序来试用这个框架。“Hello World”程序在Yii中是一个简单的Web程序,它发送信息到浏览器。

一个典型Yii的Web应用程序执行流程从用户通过浏览器输入一个请求后开始,Yii应用程序首先解析该请求的信息,去查找一个对应的控制器,然后调用该控制器内的动作方法。在该动作方法中,可以渲染一个特定的视图,然后将渲染后的内容返回给用户。如果需要处理数据,那么控制器可以调用模型来处理创建、读取、更新和删除(CRUD)等数据库操作。

本章中的这个“Hello World”示例,只需要一个控制器和视图,不处理任何数据,这样将不需要模型。接下来让我们开始创建控制器。

创建一个新的控制器,PHP文件名是MessageController.php,并放到控制器目录protected/controllers中。新创建的MessageController类继承应用程序的基类Controller,它的位置是protected/components/Controller.php。由于MessageController类继承了框架的基础类Ccontroller,因此,它继承了Ccontroller类默认的所有行为。在MessageController类中创建一个actionOutput()动作方法。下面的代码是MessageController类的内容。
 

  1. <?php 
  2. class MessageController extends Controller  
  3. {  
  4. public function actionOutput()  
  5. {  
  6. $this->render('helloWorld');  
  7. }  

视图文件与控制器关联,默认存放在protected/views/message下。编辑protected/views/ message/helloWorld.php,修改成如下代码:
 

  1. <h1>Hello, World!</h1> 

保存代码,并访问http://hostname/dscms/index.php?r=message/output,页面如图2-12所示。
 

回顾一下运行这个应用程序时Yii框架是如何分析的,如图2-13所示。
 

1.用户发送了访问http://hostname/index.php?r=message/output的请求, Web 服务器通过执行入口脚本index.php处理此请求。

2.入口脚本创建了一个应用实例对象并执行。

3.应用实例对象分析这个URL,controllerID是message,它将告诉Yii应该去请求MessageController.php文件,这个文件的位置是protected/controllers/MessageController.php。Yii还发现,actionID指定的是output,因此,会调用MessageController类中的actionOutput()操作方法。

4.actionOutput()方法会渲染helloworld.php视图文件,这个文件的位置是protected/ views/message/helloworld.php。

5.动作方法完成视图渲染并将其返回给浏览器。
 

 

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

51CTO读书频道二维码


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

责任编辑:book 来源: 人民邮电出版社
相关推荐

2014-12-19 10:07:10

C

2009-07-30 13:21:17

Scala入门Hello World

2009-08-11 10:32:23

什么是Groovy

2023-01-06 08:18:44

2023-09-04 07:30:03

Wasm汇编语言

2009-09-16 17:15:19

OSGi Bundle

2011-06-08 14:39:06

Qt 教程

2012-02-20 14:26:48

JavaPlay Framew

2017-11-28 16:57:18

2023-05-23 08:01:10

Netty网络通信

2009-08-14 16:54:19

C# Hello Wo

2011-08-05 09:48:46

iPhone Interface

2014-04-11 11:36:42

NDKAndroid开发终端

2021-11-26 08:22:01

Java动态开发

2024-04-11 13:13:27

2017-06-26 08:55:52

2013-12-12 17:30:03

Lua例子

2010-01-07 13:27:22

Linux驱动程序

2011-09-08 10:41:12

Node.js

2015-10-27 09:47:11

点赞
收藏

51CTO技术栈公众号