Yii 是什么
Yii 是一個高性能,基於組件的 PHP 框架,用於快速開發現代 Web 應用程序。名字 Yii (讀作 易
)在中文里有“極致簡單與不斷演變”兩重含義,也可看作 Yes It Is! 的縮寫。
Yii 最適合做什么?
Yii 是一個通用的 Web 編程框架,即可以用於開發各種用 PHP 構建的 Web 應用。因為基於組件的框架結構和設計精巧的緩存支持,它特別適合開發大型應用,如門戶網站、社區、內容管理系統(CMS)、電子商務項目和 RESTful Web 服務等。
系統要求
Yii 2.0 需要 PHP 5.4.0 或以上版本支持。
總體目錄結構
下面是我們Yii 官方站點正在使用的目錄結構:
根目錄結構
在工程頂層根目錄下,我們有四個目錄:
正如我們可以看到,我們整個系統划分成三個應用程序:后端,前端和控制台。當然,如果需要,我們可以添加更多的應用程序(如API,提供Web API服務),根據自己的需求而定。我們使用共同(common)目錄下的文件在不同應用程序之間共享。
應用程序目錄
每個應用程序的目錄結構非常相似。例如,對於前端和后端,它們都具有這些目錄:
控制台(console)目錄結構略與其它應用程序目錄不同,因為它不需要控制器(controllers),視圖(views)和網站根目錄(www)。相反,它包含一個(commands)目錄來存儲所有控制台的命令類文件。
公共(Common)目錄
公共的目錄(Common)中包含的文件用於其它應用程序之間共享。例如,每一個應用程序可能需要訪問該數據庫的使用 ActiveRecord。因此,我們可以將AR模型類放置在公共(common)的目錄下。同樣,如果在多個應用程序中使用了一些輔助(helper )或部件類(widget ),我們也應該把這些放置在公共目錄(common)下,以避免重復的代碼。
為了便於代碼的維護,我們組織這個公共目錄結構(common)類似這個應用程序的目錄。例如,我們有組件(components),模型(models),第三方庫(lib)等等.
正如我們將很快解釋,應用程序也可以共享一部分的共用配置。因此,我們還可以存儲config目錄下共同的常見配置。
當開發一個大型項目開發周期長,我們需要不斷調整數據庫結構。出於這個原因,我們還可以使用數據庫遷移(DB migrations )功能來保持跟蹤數據庫的變化。我們將所有 DB migrations(數據庫遷移)目錄同樣都放在公共(common)目錄下面。
應用程序(Application )配置
同一系統中的應用通常有着一些共用的配置,如數據庫連接配置,應用程序的參數,為了消除重復的代碼,
我們應該提取這些共用的配置,它們保存在一個中心位置。在我們的設置,我們把這些放置在公共目錄(common)的配置(config)目錄下。
在團隊開發的環境中工作時,不同的開發人員可能有不同的開發環境(如操作系統,目錄,數據庫連接)。這些環境也往往都是來自不同的生產環境。為了避免開發者之間的代碼沖突,我們分成兩部分的配置:基本配置(如main.php,params.php)和本地配置(例如主要local.php,PARAMS- local.php)。
基本配置應置於版本控制之下,像普通的源代碼,使每個開發人員可以通過共享。本地配置不應該被增加到版本控制之下,應該只存在於每一個人開發者的工作文件夾。開發人員可以自由的來修改他的本地配置。
在應用程序的引導腳本index.php文件,我們可以合並的基礎和本地配置和再配置的應用實例,如以下:
路徑別名(Path Alias)配置
為了便於在不同的應用程序中引用文件,我們也聲明包含這四個頂級目錄的根目錄根路徑別名網站(譯者注: 也就是相當你的工程名稱)。
因此,在前台應用程序中聲明我們可以使用site.frontend.models.ContactForm來引用ContactForm類
部署應用(Deployment )
在項目開發過程結束后,我們需要將它部署到生產服務器。使用FTP或其他類似的服務將應用程序文件上傳到服務器,我們可以使用版本控制系統去做部署。然后,我們創建或修改的本地生產服務器的具體配置。例如,我們可能需要調整DB連接參數。我們可能要定義YII_DEBUG在index.php設為false。
因為我們每個應用程序存儲在一個單獨的目錄,這樣就帶來了更多的靈活性,如果你有多台服務器,你可以將它們部署到不同的服務器,非常適合大型網站。