歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Yii PHP Framework新手入門教程

Yii PHP Framework新手入門教程

日期:2017/2/28 14:01:44   编辑:Linux教程

說明:由於近期工作工作關系,須要開發一個在Linux下執行的Web Application,須要對如今比較流行的一些PHP框架做一個了解和評估,以下的這篇文章是筆者近期學習一個比較新的PHP Framework的一點經歷和操作步驟,由於官方的手冊寫得比較晦澀(特別是中文的),以前嘗試遍讀它那個手冊再動手,讀了一大半發現仍無法理解,於是干脆先下手為強了,因而也就有了以下的文章。

介紹

Yii 是一個基於組件、純OOP的、用於開發大型 Web 應用的高性能 PHP 框架。它將 Web 編程中的可重用性發揮到極致,可以顯著加速開發進程。Yii適合大流量的應用,如門戶、BBS、CMS及B2B系統等,功能豐富,性能優異,只是它的中文文檔還不完好,而且有些命令行的操作是針對非Windows用戶的,不易理解,所以制作了這篇文檔。

下載地址:http://www.yiiframework.com/download/

中文文檔地址:http://www.yiiframework.com/doc/guide/zh_cn

配置

以下針對本人的機器相關軟件環境及路徑做下說明:

Apache2.2.4+PHP5.2.5+MySQL5.1.39

在這裡須要說明的是須要在設置Windows環境變量,在Path中加入PHP執行環境所在的文件夾(如本人在原有配置後加上”;C:/PHP”),由於使用Yii時須要PHP的執行環境。此外,在PHP版本號選擇時建議不要選擇比較高的版本號,本人是從PHP5.3.0->PHP5.2.11->PHP5.2.5一路降下來才執行成功的,建議盡量臨時不要使用PHP5.3.0、PHP5.2.11,本人在使用這兩個版本號過程中常常遇到一個ext文件夾下的dll文件不能載入的情況,當然你確認自己對PHP的配置相當熟悉的話例外。

由於在Yii中須要開啟pdo和pdo_mysql,所以請確保在執行環境所使用的php.ini中取消了extension=php_mysql.dll、extension=php_pdo.dll、extension=php_pdo_mysql.dll的凝視。

Apache的站點根路徑為D:/wwwroot,在這個根路徑下創建一個名為YiiDemo的目錄,將從網上下載到的Yii壓縮包解壓之後,拷貝進D:/wwwroot/YiiDemo目錄,文件結構例如以下:

注:上圖中demos、framework、requirements是Yii壓縮包中的目錄,其他文件和目錄是本人使用Eclipse時創建的。此外,在D:/wwwroot/YiiDemo/framework目錄下有一個yiic.bat文件,這個文件能夠幫助我們高速生成站點架構和MVC相關的文件。

另外,在本實例中MySQL和PHP都是用了utf8編碼,不建議使用gb2312編碼,能顯示的中文字符太少,而且對其他東亞語系不支持,甚至連生僻點的繁體中文都不能顯示,而utf8能夠解決問題。

創建站點初始結構

啟動Windows命令行程序(在開始菜單上找到“執行”,然後輸入“cmd”並回車),能夠看到例如以下命令行窗體:

在命令行方式下切換到Yii的framework文件夾下用以運行yiic命令(實際運行的是yiic.bat),例如以下:

看到如上圖所看到的的信息之後,就能夠使用yiic來創建站點結構了,在本例中我們在D:/wwwroot/YiiDemo/framework(注意Apache中站點根路徑為D:/wwwroot)下創建站點,站點名字為study,先在D:/wwwroot/YiiDemo/framework下手動創建study這個目錄,然後使用例如以下命令創建站點:yiic webapp 站點路徑,例如以下圖:

在輸入創建站點的命令之後就會看到如上圖所看到的的提示,鍵入”y”之後就會在D:/wwwroot/YiiDemo/study文件夾創建站點的框架結構,例如以下圖所看到的:

依照本人機器配置,如今就能夠看到Yii框架的雛形顯示了,網址是:http://localhost/YiiDemo/study/index.php。

生成MVC文件

依照默認配置還不能使用數據庫,要想獲取與數據庫的練習,須要更改配置,打開D:/wwwroot/YiiDemo/study/protected/config目錄下的main.php文件,更改components中的配置就可以,’db’這一參數被凝視掉了,將’db’參數設置例如以下:

'db'=>array(

'connectionString'=>'mysql:host=localhost;dbname=study',

'username'=>'root',

'password'=>'jeri',

),

保存之後就可以連接MySQL數據庫了,實際使用時要依據自己的實際情況配置。

在此將繼續使用yiic這個命令行工具,通過cd切換工作路徑到D:/wwwroot/YiiDemo/study這個目錄,然後在命令行中能夠創建model和view文件。例如以下:

須要注意的是,如上圖所看到的,由於yiic.bat文件在D:/wwwroot/YiiDemo/framework目錄下,而當前命令行的工作路徑是D:/wwwroot/YiiDemo/study,所以在執行yiic時建議使用全路徑。

使用yiic shell命令就能夠進入shell命令行,在命令行看到的輸入提示變為“>>”,鍵入model 表名就會創建相應表的model文件,上圖以下就是使用“model user”成功之後就能夠看到上圖相應的情況。

還能夠使用crud (crud各自是create/read/update/delete的縮寫,表示經常使用的增刪改查數據庫操作)表名創建相應的coltroller和view文件,例如以下圖所看到的:

比方針對表user、userlist等使用model和crud命令之後,我們就能夠在浏覽器中查看這些文件了,如查看userlist表中的數據,能夠在浏覽器中輸入http://localhost/YiiDemo/study/index.php?r=userlist,看到例如以下所看到的的圖:

能夠看到雖然MySQL和PHP都是用了utf8編碼,可是數據庫中的RealName字段由於是中文數據導致不能正常顯示,出現這種情況是由於採用了默認的字符集連接MySQL,在PHP中直接連接MySQL時,假設使用了utf8編碼,我們會在PHP代碼中做例如以下設置:mysql_query("set names 'utf8'");可是在Yii中沒有提供這種機會,

我們能夠在設置數據庫連接字符串時指定連接數據庫所使用的字符集,例如以下:

'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';也能正常顯示了,例如以下圖所看到的:

好了,至此沒有寫一行代碼,可是已經完畢了一個站點的大體框架,而且能初步實現增刪改查功能了。盡管採用更改所有配置的方式也能夠實現顯示數據庫中的中文,可是不建議採用這樣的方式。在此很感謝kingheaven的提示。

Yii 用戶登陸機制 http://www.linuxidc.com/Linux/2015-01/111602.htm

Yii中引入js和css文件 http://www.linuxidc.com/Linux/2015-01/111603.htm

Yii 不完全解決方案 http://www.linuxidc.com/Linux/2015-01/111606.htm

Yii CGridView 基本使用 http://www.linuxidc.com/Linux/2015-01/111607.htm

Yii框架分布式緩存的實現方案 http://www.linuxidc.com/Linux/2015-02/113828.htm

Yii 的詳細介紹:請點這裡
Yii 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved