本文主要和大家分享Yii安裝與應用詳解,首先先安裝Yii,你可以通過兩種方式安裝 Yii:使用 Composer 或下載一個歸檔檔案。
推薦使用前者,這樣只需執行一條簡單的命令就可以安裝新的擴充或更新 Yii 了。
標準安裝完Yii之後,架構和一個項目模板兩者都下載並安裝好了。
一個項目模板是實現了一些基本特性的一個 可行的Yii項目,比如登入,聯絡表單,等等。
它的代碼是以推薦的方式組織的。因此,它能夠適合作為你項目的一個好的起點。
通過 Composer 安裝
Installing Composer
如果還沒有安裝 Composer,你可以按 getcomposer.org 中的方法安裝。
在 Linux 和 Mac OS X 中可以運行如下命令:
curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer
在 Windows 中,你需要下載並運行 Composer-Setup.exe。
如果遇到任何問題或者想更深入地學習 Composer,請參考 Composer 文檔(英文),
Composer 中文。
如果你已經安裝有 Composer 請確保使用的是最新版本,
你可以用 composer self-update 命令更新 Composer 為最新版本。
Composer 安裝後,切換到一個可通過 Web 存取的目錄,執行如下命令即可安裝 Yii :
composer global require "fxp/composer-asset-plugin:^1.3.1"composer create-project --prefer-dist yiisoft/yii2-app-basic basic
第一條命令安裝 Composer asset plugin,
它是通過 Composer 管理 bower 和 npm 包所必須的,此命令全域生效,一勞永逸。
第二條命令會將 Yii 安裝在名為 basic 的目錄中。如果你想使用其它目錄名稱,你可以選擇其他目錄名稱。
注意:在安裝過程中 Composer 可能會詢問你 GitHub 賬戶的認證資訊,因為可能在使用中超過了 GitHub API (對匿名使用者的)使用限制。因為 Composer 需要為所有擴充包從 GitHub
中擷取大量資訊,所以超限非常正常。(譯註:也意味著作為程式猿沒有 GitHub 帳號,就真不能愉快地玩耍了)登陸 GitHub 之後可以得到更高的 API 限額,這樣 Composer 才能正常運行。更多細節請參考 Composer
文檔(該段 Composer中文文檔期待您的參與)。
提示:如果你想安裝 Yii 的最新開發版本,可以使用以下命令代替,
它添加了一個 stability 選項(中文版):
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
注意,Yii 的開發版(dev 版)不應該用於生產環境中,它可能會破壞運行中的代碼。
通過歸檔檔案安裝
通過歸檔檔案安裝 Yii 包括三個步驟:
從 yiiframework.com 下載歸檔檔案。
將下載的檔案解壓縮到 Web 存取的檔案夾中。
修改 config/web.php 檔案,給 cookieValidationKey 配置項
添加一個密鑰(若你通過 Composer 安裝,則此步驟會自動完成):
// !!! 在下面插入一段密鑰(若為空白) - 以供 cookie validation 的需要'cookieValidationKey' => '在此處輸入你的密鑰',
運行應用
安裝 Yii 後,就有了一個可啟動並執行 Yii 應用,
根據配置的不同,可以通過 http://hostname/basic/web/index.php 或 http://hostname/index.php 訪問。
應用結構
應用中最重要的目錄和檔案(假設應用根目錄是 basic):
basic/ 應用根目錄 composer.json Composer 設定檔, 描述包資訊 config/ 包含應用配置及其它配置 console.php 控制台應用配置資訊 web.php Web 應用程式配置資訊 commands/ 包含控制台命令類 controllers/ 包含控制器類 models/ 包含模型類 runtime/ 包含 Yii 在運行時產生的檔案,例如日誌和快取檔案 vendor/ 包含已經安裝的 Composer 包,包括 Yii 架構自身 views/ 包含視圖檔案 web/ Web 應用程式根目錄,包含 Web 入口檔案 assets/ 包含 Yii 發布的資源檔(javascript 和 css) index.php 應用入口檔案 yii Yii 控制台命令執行指令碼
一般來說,應用中的檔案可被分為兩類:在 basic/web 下的和在其它目錄下的。
前者可以直接通過 HTTP 訪問(例如瀏覽器),後者不能也不應該被直接存取。
請求生命週期
以表展示了一個應用如何處理請求:
使用者向入口指令碼 web/index.php 發起請求。
入口指令碼載入應用配置並建立一個應用
執行個體去處理請求。
應用通過請求組件解析請求的
路由。
應用建立一個控制器執行個體去處理請求。
控制器建立一個動作執行個體並針對操作執行過濾器。
如果任何一個過濾器返回失敗,則動作取消。
如果所有過濾器都通過,動作將被執行。
動作會載入一個資料模型,或許是來自資料庫。
動作會渲染一個視圖,把資料模型提供給它。
渲染結果返回給回應群組件。
回應群組件發送渲染結果給使用者瀏覽器。