Yii2.0官方高級模板的目錄結構分析


Yii 是什么

Yii 是一個高性能,基於組件的 PHP 框架,用於快速開發現代 Web 應用程序。名字 Yii (讀作 )在中文里有“極致簡單與不斷演變”兩重含義,也可看作 Yes It Is! 的縮寫。

Yii 最適合做什么?

Yii 是一個通用的 Web 編程框架,即可以用於開發各種用 PHP 構建的 Web 應用。因為基於組件的框架結構和設計精巧的緩存支持,它特別適合開發大型應用,如門戶網站、社區、內容管理系統(CMS)、電子商務項目和 RESTful Web 服務等。

系統要求

Yii 2.0 需要 PHP 5.4.0 或以上版本支持。

總體目錄結構
下面是我們Yii 官方站點正在使用的目錄結構:

/
    backend/
    common/
        components/
        config/
            params.php
            params-local.php *
        lib/
            Pear/
            yii/
            Zend/
        migrations/
        models/
            Comment.php
            Extension.php
            …
    console/
        commands/
            SitemapCommand.php
            …
        config/
            main.php
            main-local.php *
            params.php
            params-local.php *
        runtime/
        yiic.php *
    frontend/
        components/
        config/
            main.php
            main-local.php *
            params.php
            params-local.php *
        controllers/
            SiteController.php
            …
        lib/
        models/
            ContactForm.php
            SearchForm.php
        runtime/
        views/
            layouts/
            site/
        www/
            assets/
            css/
            js/
            index.php *
    yiic
    yiic.bat

根目錄結構
在工程頂層根目錄下,我們有四個目錄:

后端(backend):后端應用程序,它主要用於管理后台,網站管理員來管理整個系統。
前端(frontend):我們的目標最終用戶提供的主要接口的前端應用。
控制台(console):控制台應用程序包含系統所需要的控制台命令的。
共同的特點(common):前端和后端,以及控制台共用的。


正如我們可以看到,我們整個系統划分成三個應用程序:后端,前端和控制台。當然,如果需要,我們可以添加更多的應用程序(如API,提供Web API服務),根據自己的需求而定。我們使用共同(common)目錄下的文件在不同應用程序之間共享。

應用程序目錄
每個應用程序的目錄結構非常相似。例如,對於前端和后端,它們都具有這些目錄:

組件(components):包含這個應用程序使用的組件(如幫助類,工具類小部件)
配置(config):包含由應用程序使用的配置
控制器(controllers):包含控制器類
LIB(lib):只用於此應用程序包含第三方庫
模型(models):包含這個應用程序需要用到的數據庫映射模型類
運行(runtime):存儲動態生成的文件
視圖(views):存儲控制器動作視圖腳本
網站根目錄(WWW):應用程序網站的Web根目錄


控制台(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文件,我們可以合並的基礎和本地配置和再配置的應用實例,如以下:

<?php
require('path/to/yii.php');
$local  = require('path/to/main-local.php');
$base   = require('path/to/main.php');
$config = CMap::mergeArray($base, $local);
Yii::createApplication($config)->run();



路徑別名(Path Alias)配置


為了便於在不同的應用程序中引用文件,我們也聲明包含這四個頂級目錄的根目錄根路徑別名網站(譯者注: 也就是相當你的工程名稱)。
因此,在前台應用程序中聲明我們可以使用site.frontend.models.ContactForm來引用ContactForm類

部署應用(Deployment )


在項目開發過程結束后,我們需要將它部署到生產服務器。使用FTP或其他類似的服務將應用程序文件上傳到服務器,我們可以使用版本控制系統去做部署。然后,我們創建或修改的本地生產服務器的具體配置。例如,我們可能需要調整DB連接參數。我們可能要定義YII_DEBUG在index.php設為false。
因為我們每個應用程序存儲在一個單獨的目錄,這樣就帶來了更多的靈活性,如果你有多台服務器,你可以將它們部署到不同的服務器,非常適合大型網站。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM