注:在第一篇中已經描述了yii框架在win下面的安裝配置,並且用命令:yiic webapp D:\AppServ\www\Yiiphp 創建了我們自己的應用項目Yiiphp,接下來要做的就是在這個應用項目中進行持續開發操作。在下面的操作中要做一下幾件事情:
1:在命令行窗口中,進入apache項目訪問目錄,然後運行 php -c C:/WINDOWS/php.ini yii/framework/yiic.php shell Yiiphp/index.php。(這的作用是運行的yii框架讀取配置指向到php.ini配置文件中,如果不執行該命令,則會在下面的數據庫操作中報“YiiBase::include(PDO.php): failed to open stream..."這樣的錯誤)
2:打開c:/window/php.ini文件,找到;extension=php_pdo.dll和;extension=php_pdo_mysql.dll;把前面的“;”號去掉(即開啓該擴展)。這的作用是開啓pdo驅動擴展和mysql查詢擴展,如果不開啓會報“PDOException: could not find driver in D:\AppServ\www\yii\framework\db\CDbCo”這樣的錯誤提示。
3:在本地新建數據庫和表結構(我本地的數據庫爲(yiiphp),數據庫中的表爲(user),並插入幾條測試數據),示例如下:
CREATE TABLE user (
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(128) NOT NULL,
password VARCHAR(128) NOT NULL,
email VARCHAR(128) NOT NULL
);
INSERT INTO user (username, password, email) VALUES ('test1', 'pass1', '[email protected]');
INSERT INTO user (username, password, email) VALUES ('test2', 'pass2', '[email protected]');
INSERT INTO user (username, password, email) VALUES ('test3', 'pass3', '[email protected]');
INSERT INTO user (username, password, email) VALUES ('test4', 'pass4', '[email protected]');
INSERT INTO user (username, password, email) VALUES ('test5', 'pass5', '[email protected]');
INSERT INTO user (username, password, email) VALUES ('test6', 'pass6', '[email protected]');
INSERT INTO user (username, password, email) VALUES ('test7', 'pass7', '[email protected]');
INSERT INTO user (username, password, email) VALUES ('test8', 'pass8', '[email protected]');
做完上面的準備工作後,下面我們就可以繼續開發我們自己的應用項目了
一:登錄yiiphp項目(http://127.0.0.1/yiiphp/index.php?r=gii),訪問該地址會提示輸入密碼(如圖一),這裏的密碼就是protected/config/main.php中配置的(如圖二)
圖一:
圖二:
二:根據數據庫中的表結構創建映射模型類(user--->User):
1:登錄成功後,會進入到操作頁面,我們點擊Model Generator進行模型映射類的創建操作
2:點擊Model Generator鏈接後進入模型映射類創建表單頁面如下圖,填寫完成後點擊按鈕提交:
注:上面的Database Connection字段中默認不變即可,這是的變量名稱和protected/config/main.php中的db變量是對應的,如下圖:
Table Name是你數據庫中表的名稱,即要跟數據庫中表的名稱一致。
Module Class是你要創建的映射模型類的類名(將在protected/models文件夾下面生成)
三:創建User類的數據庫操作代碼(CURD代碼),訪問http://127.0.0.1/yiiphp/index.php?r=gii,點擊Crud Generator鏈接創建數據庫操作代碼
注:左側的model class字段即是我們剛剛創建的模型類的類名(User)。
四:訪問數據列表顯示頁面(http://127.0.0.1/yiiphp/index.php?r=user),可以看到剛纔我們sql語句插入的數據列表。
五:對數據列表進行管理操作,刪改操作。訪問:http://127.0.0.1/yiiphp/index.php?r=user/admin,如下圖
截止到這裏,我們的關於用戶的增刪改查基本操作的應用項目已經完工了,當然只是功能上面的完工。但是讓人感到驚奇的是,你竟然沒有寫一句業務邏輯代碼就把一個數據記錄增刪改查的功能項目給做完了。這就是YII框架的強大之處,當然,如果你有其他需求(處理基本增刪改查操作)你也可以在Controller控制層中添加你自己的業務邏輯代碼即可,很方便吧。當然接下來還要繼續深入的學習體會Yii框架內部正確強大的內核代碼,好好體會OOP編程和整體的框架設計思想。
總結:yii框架的執行流程:用戶發起請求->瀏覽器接受請求發送到web服務器->web根據請求調用相應controller->controller進行邏輯分析,如果需要調用model則調用相應model對象->將處理好的數據返回給web服務器->web服務器將信息返回到瀏覽器進行顯示(通過views層)。
針對上面的操作的處理流程如下:
1:http://127.0.0.1/yiiphp/index.php?r=user 接受到這個請求後,根據user參數會執行protected/UserController.php控制器,默認會執行actionIndex()這個方法(其實你可以直接訪問http://127.0.0.1/yiiphp/index.php?r=user/index也是可以的,即也是執行actionIndex()方法),然後調用模型類User中的模型數據,把結果渲染視圖程序給用戶。
下圖添加一副總體執行流程圖(轉載)