Yii PHP Framework實用入門教程(詳細介紹)
介紹
Yii 是一個基于組件、純OOP的、用于開發(fā)大型 Web 應用的高性能 PHP 框架。它將 Web 編程中的可重用性發(fā)揮到極致,能夠顯著加速開發(fā)進程。Yii適合大流量的應用,如門戶、BBS、CMS及B2B系統(tǒng)等,功能豐富,性能優(yōu)異,不過它的中文文檔還不完善,并且有些命令行的操作是針對非Windows用戶的,不易理解,所以制作了這篇文檔。
下載地址:http://www.yiiframework.com/download/
中文文檔地址:http://www.yiiframework.com/doc/guide/zh_cn
配置
下面針對本人的機器相關軟件環(huán)境及路徑做下說明:
Apache2.2.4+PHP5.2.5+MySQL5.1.39
在這里需要說明的是需要在設置Windows環(huán)境變量,在Path中添加PHP運行環(huán)境所在的目錄(如本人在原有配置后加上”;C:/PHP”),因為使用Yii時需要PHP的運行環(huán)境。此外,在PHP版本選擇時建議不要選擇比較高的版本,本人是從PHP5.3.0->PHP5.2.11->PHP5.2.5一路降下來才運行成功的,建議盡量暫時不要使用PHP5.3.0、PHP5.2.11,本人在使用這兩個版本過程中經(jīng)常遇到一個ext目錄下的dll文件不能加載的情況,當然你確認自己對PHP的配置相當熟悉的話例外。
因為在Yii中需要開啟pdo和pdo_mysql,所以請確保在運行環(huán)境所使用的php.ini中取消了extension=php_mysql.dll、extension=php_pdo.dll、extension=php_pdo_mysql.dll的注釋。
Apache的網(wǎng)站根路徑為D:/wwwroot,在這個根路徑下創(chuàng)建一個名為YiiDemo的文件夾,將從網(wǎng)上下載到的Yii壓縮包解壓之后,拷貝進D:/wwwroot/YiiDemo文件夾,文件結構如下:
注:上圖中demos、framework、requirements是Yii壓縮包中的文件夾,其它文件和文件夾是本人使用Eclipse時創(chuàng)建的。此外,在D:/wwwroot/YiiDemo/framework文件夾下有一個yiic.bat文件,這個文件可以幫助我們快速生成網(wǎng)站架構和MVC相關的文件。
另外,在本實例中MySQL和PHP都是用了utf8編碼,不建議使用gb2312編碼,能顯示的中文字符太少,并且對其它東亞語系不支持,甚至連生僻點的繁體中文都不能顯示,而utf8可以解決這個問題。
創(chuàng)建網(wǎng)站初始結構
啟動Windows命令行程序(在開始菜單上找到“運行”,然后輸入“cmd”并回車),可以看到如下命令行窗口:
在命令行方式下切換到Yii的framework目錄下用以執(zhí)行yiic命令(實際執(zhí)行的是yiic.bat),如下:
看到如上圖所示的信息之后,就可以使用yiic來創(chuàng)建網(wǎng)站結構了,在本例中我們在D:/wwwroot/YiiDemo/framework(注意Apache中網(wǎng)站根路徑為D:/wwwroot)下創(chuàng)建網(wǎng)站,網(wǎng)站名字為study,先在D:/wwwroot/YiiDemo/framework下手動創(chuàng)建study這個文件夾,然后使用如下命令創(chuàng)建網(wǎng)站:yiic webapp 網(wǎng)站路徑,如下圖:
在輸入創(chuàng)建網(wǎng)站的命令之后就會看到如上圖所示的提示,鍵入”y”之后就會在D:/wwwroot/YiiDemo/study目錄創(chuàng)建網(wǎng)站的框架結構,如下圖所示:
按照本人機器配置,現(xiàn)在就可以看到Yii框架的雛形顯示了,網(wǎng)址是:http://localhost/YiiDemo/study/index.php。
生成MVC文件
按照默認配置還不能使用數(shù)據(jù)庫,要想獲取與數(shù)據(jù)庫的練習,需要更改配置,打開D:/wwwroot/YiiDemo/study/protected/config文件夾下的main.php文件,更改components中的配置即可,'db'這一參數(shù)被注釋掉了,將'db'參數(shù)設置如下:
'db'=>array(
'connectionString'=>'mysql:host=localhost;dbname=study',
'username'=>'root',
'password'=>'jeri',
),
保存之后即可連接MySQL數(shù)據(jù)庫了,實際使用時要根據(jù)自己的實際情況配置。
在此將繼續(xù)使用yiic這個命令行工具,通過cd切換工作路徑到D:/wwwroot/YiiDemo/study這個文件夾,然后在命令行中可以創(chuàng)建model和view文件。如下:
需要注意的是,如上圖所示,因為yiic.bat文件在D:/wwwroot/YiiDemo/framework文件夾下,而當前命令行的工作路徑是D:/wwwroot/YiiDemo/study,所以在運行yiic時建議使用全路徑。
使用yiic shell命令就可以進入shell命令行,在命令行看到的輸入提示變?yōu)椤?/SPAN>>>”,鍵入model 表名就會創(chuàng)建對應表的model文件,上圖下面就是使用“model user”成功之后就可以看到上圖對應的情況。
還可以使用crud (crud分別是create/read/update/delete的縮寫,表示常用的增刪改查數(shù)據(jù)庫操作)表名創(chuàng)建對應的coltroller和view文件,如下圖所示:
比如針對表user、userlist等使用model和crud命令之后,我們就可以在瀏覽器中查看這些文件了,如查看userlist表中的數(shù)據(jù),可以在瀏覽器中輸入http://localhost/YiiDemo/study/index.php?r=userlist,看到如下所示的圖:
可以看到盡管MySQL和PHP都是用了utf8編碼,但是數(shù)據(jù)庫中的RealName字段因為是中文數(shù)據(jù)導致不能正常顯示,出現(xiàn)這種情況是因為采用了默認的字符集連接MySQL,在PHP中直接連接MySQL時,如果使用了utf8編碼,我們會在PHP代碼中做如下設置:mysql_query("set names 'utf8'");但是在Yii中沒有提供這樣的機會,
我們可以在設置數(shù)據(jù)庫連接字符串時指定連接數(shù)據(jù)庫所使用的字符集,如下:
'db'=>array(
'connectionString'=>'mysql:host=localhost;dbname=study',
'username'=>'root',
'password'=>'jeri',
'charset'=>'utf8',//use charset as utf8
),
這樣就能正常顯示了。當然也可以更改全局配置,那就是更改D:/wwwroot/YiiDemo/framework/db文件夾下的CDbConnection.php文件中的
public $charset;
改為public $charset='utf8';也能正常顯示了,如下圖所示:

好了,至此沒有寫一行代碼,但是已經(jīng)完成了一個網(wǎng)站的大體框架,并且能初步實現(xiàn)增刪改查功能了。雖然采用更改全部配置的方式也可以實現(xiàn)顯示數(shù)據(jù)庫中的中文,但是不建議采用這種方式。在此非常感謝kingheaven的提示。
- 記錄Yii2框架開發(fā)微信公眾號遇到的問題及解決方法
- 使用YII2框架實現(xiàn)微信公眾號中表單提交功能
- 完美利用Yii2微信后臺開發(fā)的系列總結
- YII Framework框架使用YIIC快速創(chuàng)建YII應用之migrate用法實例詳解
- YII Framework框架教程之使用YIIC快速創(chuàng)建YII應用詳解
- Yii Framework框架獲取分類下面的所有子類方法
- YiiFramework入門知識點總結(圖文教程)
- YII Framework框架教程之緩存用法詳解
- YII Framework框架教程之國際化實現(xiàn)方法
- YII Framework框架教程之安全方案詳解
- Yii Framework框架開發(fā)微信公眾平臺示例
相關文章
詳解如何使用PHP實現(xiàn)動態(tài)代理IP的功能
動態(tài)代理IP是一種通過不斷切換不同的代理IP來隱藏真實IP地址的技術,動態(tài)代理IP可以有效地解決IP被封鎖或訪問限制的問題,本文將使用PHP語言實現(xiàn)動態(tài)代理IP的功能,需要的朋友可以參考下2024-03-03php中使用parse_url()對網(wǎng)址進行解析的實現(xiàn)代碼(parse_url詳解)
parse_url用來解析一個 URL 并返回一個關聯(lián)數(shù)組,包含在 URL 中出現(xiàn)的各種組成部分2012-01-01PHP數(shù)據(jù)庫連接mysql與mysqli對比分析
這篇文章主要介紹了PHP數(shù)據(jù)庫連接mysql與mysqli對比分析,以及php中mysqli用法舉例,感興趣的小伙伴們可以參考一下2016-01-01連接到txt文本的超鏈接,不直接打開而是點擊后下載的處理方法
默認情況下瀏覽器Mime類型設定中會直接打開txt文本,但是如果想做到直接下載需要對Mime進行設置。2009-07-07