2.4 輸出“Hello World”
2.4 輸出“Hello World”
首先,在新的應用上編寫一個“Hello World”程序來試用這個框架。“Hello World”程序在Yii中是一個簡單的Web程序,它發(fā)送信息到瀏覽器。
一個典型Yii的Web應用程序執(zhí)行流程從用戶通過瀏覽器輸入一個請求后開始,Yii應用程序首先解析該請求的信息,去查找一個對應的控制器,然后調(diào)用該控制器內(nèi)的動作方法。在該動作方法中,可以渲染一個特定的視圖,然后將渲染后的內(nèi)容返回給用戶。如果需要處理數(shù)據(jù),那么控制器可以調(diào)用模型來處理創(chuàng)建、讀取、更新和刪除(CRUD)等數(shù)據(jù)庫操作。
本章中的這個“Hello World”示例,只需要一個控制器和視圖,不處理任何數(shù)據(jù),這樣將不需要模型。接下來讓我們開始創(chuàng)建控制器。
創(chuàng)建一個新的控制器,PHP文件名是MessageController.php,并放到控制器目錄protected/controllers中。新創(chuàng)建的MessageController類繼承應用程序的基類Controller,它的位置是protected/components/Controller.php。由于MessageController類繼承了框架的基礎類Ccontroller,因此,它繼承了Ccontroller類默認的所有行為。在MessageController類中創(chuàng)建一個actionOutput()動作方法。下面的代碼是MessageController類的內(nèi)容。
- <?php
- class MessageController extends Controller
- {
- public function actionOutput()
- {
- $this->render('helloWorld');
- }
- }
視圖文件與控制器關(guān)聯(lián),默認存放在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.用戶發(fā)送了訪問http://hostname/index.php?r=message/output的請求, Web 服務器通過執(zhí)行入口腳本index.php處理此請求。
2.入口腳本創(chuàng)建了一個應用實例對象并執(zhí)行。
3.應用實例對象分析這個URL,controllerID是message,它將告訴Yii應該去請求MessageController.php文件,這個文件的位置是protected/controllers/MessageController.php。Yii還發(fā)現(xiàn),actionID指定的是output,因此,會調(diào)用MessageController類中的actionOutput()操作方法。
4.a(chǎn)ctionOutput()方法會渲染helloworld.php視圖文件,這個文件的位置是protected/ views/message/helloworld.php。
5.動作方法完成視圖渲染并將其返回給瀏覽器。
喜歡的朋友可以添加我們的微信賬號:
51CTO讀書頻道二維碼
51CTO讀書頻道活動討論群:365934973