打算自己做個新的專案,會在部落格記錄每天所做的事。最近在學習yii框架,雖然yaf我也在看,不過主要精力都在yii上面了,決定做個類似貼吧的小站,框架選擇了yii,在網上看了一些關於yii的文章,覺得這篇不錯,以後我的這個站就採用這種部署方式。
在這篇文章中,描述了yiiframework.com站點使用目錄結構 – yii框架專案的官方**。雖然這種結構可能顯得過於複雜的對於小專案或是小的團隊,或在某種意義上可能不是最佳的選擇,但我們相信,它是非常適合在中型 或大型專案團隊一起開發環境的。事實上,我們已經成功地使用在其他一些大專案類似的結構。
總體目錄結構
下面是我們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
在乙個團隊開發的環境,我們通常都會使用一些源**版本的系統(如svn,git)來管理上述的目錄結構。帶有星號標註的檔名不需要放在版本控制裡面,在後面我們將解釋到。
根目錄結構
在工程頂層根目錄下,我們有四個目錄:
後端(backend):後端應用程式,它主要用於管理後台,**管理員來管理整個系統。前端(frontend):我們的目標終端使用者提供的主要介面的前端應用。
控制台(console):控制台應用程式包含系統所需要的控制台命令的。
共同的特點(common):前端和後端,以及控制台共用的。
正如我們可以看到,我們整個系統劃分成三個應用程式:後端,前端和控制台。當然,如果需要,我們可以新增更多的應用程式(如api,提供web api服務),根據自己的需求而定。我們使用共同(common)目錄下的檔案在不同應用程式之間共享。
應用程式目錄
每個應用程式的目錄結構非常相似。例如,對於前端和後端,它們都具有這些目錄:
元件(components):包含這個應用程式使用的元件(如幫助類,工具類小部件)配置(config):包含由應用程式使用的配置
控制器(controllers):包含控制器類
lib(lib):只用於此應用程式包含第三方庫
模型(models):包含這個應用程式需要用到的資料庫對映模型類
執行(runtime):儲存動態生成的檔案
檢視(views):儲存控制器動作檢視指令碼
控制台(console)目錄結構略與其它應用程式目錄不同,因為它不需要控制器(controllers),檢視(views)和**根目錄(www)。相反,它包含乙個(commands)目錄來儲存所有控制台的命令類檔案。
公共(common)目錄
公共的目錄(common)中包含的檔案用於其它應用程式之間共享。例如,每乙個應用程式可能需要訪問該資料庫的使用 activerecord。因此,我們可以將ar模型類放置在公共(common)的目錄下。同樣,如果在多個應用程式中使用了一些輔助(helper )或部件類(widget ),我們也應該把這些放置在公共目錄(common)下,以避免重複的**。
為了便於**的維護,我們組織這個公共目錄結構(common)類似這個應用程式的目錄。例如,我們有元件(components),模型(models),第三方庫(lib)等等.
正如我們將很快解釋,應用程式也可以共享一部分的共用配置。因此,我們還可以儲存config目錄下共同的常見配置。
當開發乙個大型專案開發周期長,我們需要不斷調整資料庫結構。出於這個原因,我們還可以使用資料庫遷移(db migrations )功能來保持跟蹤資料庫的變化。我們將所有 db migrations(資料庫遷移)目錄同樣都放在公共(common)目錄下面。
同一系統中的應用通常有著一些共用的配置,如資料庫連線配置,應用程式的引數,為了消除重複的**,
我們應該提取這些共用的配置,它們儲存在乙個中心位置。在我們的設定,我們把這些放置在公共目錄(common)的配置(config)目錄下。
在團隊開發的環境中工作時,不同的開發人員可能有不同的開發環境(如作業系統,目錄,資料庫連線)。這些環境也往往都是來自不同的生產環境。為了避免開發者之間的**衝突,我們分成兩部分的配置:基本配置(如main.php,params.php)和本地配置(例如主要local.php,params- local.php)。
基本配置應置於版本控制之下,像普通的源**,使每個開發人員可以通過共享。本地配置不應該被增加到版本控制之下,應該只存在於每乙個人開發者的工作資料夾。開發人員可以自由的來修改他的本地配置。
在應用程式的引導指令碼index.php檔案,我們可以合併的基礎和本地配置和再配置的應用例項,如以下:
<?phprequire('path/to/yii.php');
$local= require('path/to/main-local.php');
$base = require('path/to/main.php');
$config = cmap::mergearray($base, $local);
路徑別名(path alias)配置
為了便於在不同的應用程式中引用檔案,我們也宣告包含這四個頂級目錄的根目錄根路徑別名**(譯者注: 也就是相當你的工程名稱)。
因此,在前台應用程式中宣告我們可以使用site.frontend.models.contactform來引用contactform類
部署應用(deployment )
在專案開發過程結束後,我們需要將它部署到生產伺服器。使用ftp或其他類似的服務將應用程式檔案上傳到伺服器,我們可以使用版本控制系統去做部署。然後,我們建立或修改的本地生產伺服器的具體配置。例如,我們可能需要調整db連線引數。我們可能要定義yii_debug在index.php設為false。
Yii2 0官方高階模板的目錄結構分析
打算自己做個新的專案,會在部落格記錄每天所做的事。最近在學習yii框架,雖然yaf我也在看,不過主要精力都在yii上面了,決定做個類似貼吧的小站,框架選擇了yii,在網上看了一些關於yii的文章,覺得這篇不錯,以後我的這個站就採用這種部署方式。在這篇文章中,描述了yiiframework.com站點...
Yii2 0官方高階模板的目錄結構分析
yii 是乙個高效能,基於元件的 php 框架,用於快速開發現代 web 應用程式。名字 yii 讀作易 在中文裡有 極致簡單與不斷演變 兩重含義,也可看作yes it is 的縮寫。yii 是乙個通用的 web 程式設計框架,即可以用於開發各種用 php 構建的 web 應用。因為基於元件的框架結...
yii2 0高階模板歸檔檔案windows7下安裝
本地php環境用的是phpstudy搭建的 安裝yii分為2步,1設定php環境變數 2安裝yii 1設定php環境變數 php.ini中找到 去掉以下 extension php gd2.dll extension php mysql.dll extension php sockets.dll o...