說明:因為最近工作工作關係,需要開發一個在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的提示。
http://www.bkjia.com/PHPjc/327697.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327697.htmlTechArticle說明: 因為最近工作工作關係,需要開發一個在Linux下啟動並執行Web Application,需要對現在比較流行的一些PHP架構做一個瞭解和評估,下面的這...