從零開始學(xué)YII2框架(六)高級應(yīng)用程序模板
高級應(yīng)用程序模板
這個模板用在大型的團隊開發(fā)項目中,而且后臺從前臺獨立分離出來以便于部署在多個服務(wù)器中。由于YIi2.0的一些新的特性,這個程序模板的功能要更深一點。提供了基本的數(shù)據(jù)庫的支持,注冊、密碼找回等功能。
安裝
可以通過Composer來安裝
如果沒有安裝Composer,先安裝
curl -s http://getcomposer.org/installer | php
然后用如下命令來獲取
php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-advanced /path/to/yii-application
也可以直接下載壓縮文件:Yii 2 with advanced application template(beta)
https://github.com/yiisoft/yii2/ ... -app-2.0.0-beta.tgz
開始
安裝完成后,需要對其進(jìn)行初始化操作。
執(zhí)行init,選擇開發(fā)環(huán)境(dev) php /path/to/yii-application/init 創(chuàng)建新的數(shù)據(jù)庫,設(shè)置common/config/main-local.php里的components.db數(shù)據(jù)庫信息 使用控制臺命令遷移數(shù)據(jù)庫 yii migrate 設(shè)置web服務(wù)器的根目錄 前臺/path/to/yii-application/frontend/web/對應(yīng)的url為http://frontend/ 后臺/path/to/yii-application/backend/web/對應(yīng)的url為http://backend/
目錄結(jié)構(gòu)
在根目錄下面有這幾個子目錄
backend——后臺web程序
common——公共的文件
console——控制臺程序
environments——環(huán)境配置
frontend——前臺web程序
根目錄下面還有包含一些文件
.gitignore ——git版本控制中忽略的文件和目錄,如果你有一些你不想要的文件到你的源代碼里面就把它添加到這個文件中。
composer.json——這個下面會描述
init——在Composer里面所描述初始化腳本
init.bat——和上面一樣,不過是Windows下面的
LIENSE.md——這個就不說了
README.md——同上
requirements.php——Yii運行環(huán)境要求檢測文件
yii——控制臺程序引導(dǎo)文件
yii.bat——Windows下面的東東
系統(tǒng)定義的路徑別名
@yii ——框架的目錄。
@app——當(dāng)前正在運行的應(yīng)用程序的基本路徑。
@common -公共文件目錄。
@frontend——前端web應(yīng)用程序目錄。
@backend ——后端web應(yīng)用程序目錄。
@console -控制臺目錄。
@runtime——當(dāng)前正在運行的web應(yīng)用程序的運行時目錄
@vendor ——基礎(chǔ)框架目錄。
@web ——當(dāng)前正在運行的web應(yīng)用程序的url
@webroot——當(dāng)前正在運行的web應(yīng)用程序的web根目錄。
應(yīng)用程序
這個模板包含三個應(yīng)用程序,前臺、后臺和控制臺。前臺通常來說就是展現(xiàn)給終端用戶的,也就是項目本身。后臺就是管理員控制面板,包含有分析以及類似的功能等。控制臺主要用來做一些定時任務(wù)和一些簡單的服務(wù)器的管理,另外也可以用來部署應(yīng)用程序、數(shù)據(jù)庫的遷移、資源的管理等。
common 目錄提供一些公共的文件,可用于多個應(yīng)用程序,例如User模型。
前臺和后臺都是web應(yīng)用程序,他們都包含一個web目錄,也就是web的根目錄,在部署服務(wù)器的時候就得要指向這個目錄。
每個應(yīng)用程序都有他們自己的命名空間以及對應(yīng)的別名。同理,common也有自己的命名空間和對應(yīng)的別名。
配置和開發(fā)環(huán)境
在平常的開發(fā)中,直接設(shè)置配置文件會有多個問題
每個團隊成員都有自己的配置選項。如果提交這樣的配置將影響其他團隊成員。
產(chǎn)品數(shù)據(jù)庫密碼和API密鑰不應(yīng)該在代碼倉庫中。
在有多個服務(wù)器的情況下:開發(fā)、測試、生產(chǎn),每一個服務(wù)器都應(yīng)該有自己的配置。
每種情況下都定義所有配置選項很重復(fù),并且還要花太多的時間去維持它。
為了解決這些問題,Yii引入了一個非常簡單的環(huán)境的概念。每個環(huán)境由環(huán)境目錄下的一組文件的集合來表示。init命令用于不同環(huán)境之間切換。它只是復(fù)制從環(huán)境目錄中所有應(yīng)用程序的根目錄。
通常環(huán)境包含應(yīng)用程序引導(dǎo)文件如index.php和以-local.php后綴的配置文件。這些已經(jīng)添加到.gitignore中,所以不會再添加到源碼倉庫中。
為了避免重復(fù)的配置文件相互覆蓋。例如,前臺應(yīng)用程序按照以下順序來讀取配置:
common/config/main.php common/config/main-local.php frontend/config/main.php frontend/config/main-local.php
參數(shù)文件按以下順序讀取
common/config/params.php common/config/params-local.php frontend/config/params.php frontend/config/params-local.php
后面讀取的文件配置會覆蓋前面的配置
整個的流程圖形如下

配置 Composer
應(yīng)用程序安裝完成后就可以設(shè)置要目錄下面的composer.json
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Application Template",
"keywords": ["yii", "framework", "advanced", "application template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-swiftmailer": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*"
},
"scripts": {
"post-create-project-cmd": [
"yii\\composer\\Installer::setPermission"
]
},
"extra": {
"writable": [
"backend/runtime",
"backend/web/assets",
"console/runtime",
"console/migrations",
"frontend/runtime",
"frontend/web/assets"
]
}
}
首先,修改一些基本信息。例如名稱,描述,關(guān)鍵詞,主頁等等。
你還可以根據(jù)你的需要添加更多的應(yīng)用程序。這些包都是來自packagist.org,可免費的瀏覽所有的代碼。
修改完composer.json之后 就可以運行
php composer.phar update --prefer-dist
,等下載并安裝完成后就可以開始使用了。自動加載的類將會自動處理。
創(chuàng)建從后端到前端的鏈接
通常情況下需要從后端應(yīng)用程序連接到前端應(yīng)用程序。因為前端應(yīng)用程序可能包含自己的URL管理規(guī)則,所以需要再添加一個不同名字的后臺的URL管理規(guī)則。
return [
'components' => [
'urlManager' => [
// here is your normal backend url manager config
],
'urlManagerFrontend' => [
// here is your frontend URL manager config
],
],
];
之后,就可以像這樣來使用前臺的url
echo Yii::$app->urlManagerFrontend->createUrl(...);
原文鏈接:http://www.yiifans.com/forum.php?mod=viewthread&tid=25
(出處: Yii2|Yii愛好者中文社區(qū)門戶)
翻譯來源:http://www.yiiframework.com/doc-2.0/guide-apps-advanced.html
(Yii Framework 2.0 API Decumentation)
- yii2高級應(yīng)用之自定義組件實現(xiàn)全局使用圖片上傳功能的方法
- YII Framework框架使用YIIC快速創(chuàng)建YII應(yīng)用之migrate用法實例詳解
- YII Framework框架教程之使用YIIC快速創(chuàng)建YII應(yīng)用詳解
- Yii2框架redis基本應(yīng)用示例
- Yii框架學(xué)習(xí)筆記之應(yīng)用組件操作示例
- Yii框架常見緩存應(yīng)用實例小結(jié)
- Yii Framework框架中事件和行為的區(qū)別及應(yīng)用實例分析
- 再談Yii Framework框架中的事件event原理與應(yīng)用
- Yii框架應(yīng)用組件用法實例分析
- Yii 框架應(yīng)用(Applications)操作實例詳解
相關(guān)文章
Yii基于CActiveForm的Ajax數(shù)據(jù)驗證用法示例
這篇文章主要介紹了Yii基于CActiveForm的Ajax數(shù)據(jù)驗證用法,結(jié)合實例形式分析了Yii視圖自定義Form表單的ajax提交及控制器處理實現(xiàn)方法,需要的朋友可以參考下2016-07-07
Thinkphp5.0 框架的請求方式與響應(yīng)方式分析
這篇文章主要介紹了Thinkphp5.0 框架的請求方式與響應(yīng)方式,結(jié)合實例形式分析了thinkPHP5常見的請求方式與響應(yīng)方式實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2019-10-10
PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十)
這篇文章主要介紹了PHP網(wǎng)頁游戲Xnova(ogame)源碼解讀的建造總覽部分,需要的朋友可以參考下2014-06-06
使用ThinkPHP的自動完成實現(xiàn)無限級分類實例詳解
這篇文章主要介紹了使用ThinkPHP的自動完成實現(xiàn)無限級分類功能,本文通過圖文并茂的方式給大家展示,介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起看看吧2016-09-09
smarty中改進(jìn)truncate使其支持中文的方法
這篇文章主要介紹了smarty中改進(jìn)truncate使其支持中文的方法,涉及針對Smarty源碼中truncate源文件進(jìn)行函數(shù)功能擴展的相關(guān)技巧,需要的朋友可以參考下2016-05-05
thinkPHP5.1框架路由::get、post請求簡單用法示例
這篇文章主要介紹了thinkPHP5.1框架路由::get、post請求簡單用法,結(jié)合實例形式分析了thinkPHP5.1路由get、post請求基本使用方法,需要的朋友可以參考下2019-05-05

