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类的内容。
- <?php
- class MessageController extends Controller
- {
- public function actionOutput()
- {
- $this->render('helloWorld');
- }
- }
视图文件与控制器关联,默认存放在protected/views/message下。编辑protected/views/ message/helloWorld.php,修改成如下代码:
- <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