程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 從零開始學YII2框架(六)高級應用程序模板

從零開始學YII2框架(六)高級應用程序模板

編輯:PHP綜合

高級應用程序模板
這個模板用在大型的團隊開發項目中,而且後台從前台獨立分離出來以便於部署在多個服務器中。由於YIi2.0的一些新的特性,這個程序模板的功能要更深一點。提供了基本的數據庫的支持,注冊、密碼找回等功能。

安裝

可以通過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

開始

安裝完成後,需要對其進行初始化操作。

執行init,選擇開發環境(dev)
php /path/to/yii-application/init
創建新的數據庫,設置common/config/main-local.php裡的components.db數據庫信息
使用控制台命令遷移數據庫
yii migrate
設置web服務器的根目錄
前台/path/to/yii-application/frontend/web/對應的url為http://frontend/
後台/path/to/yii-application/backend/web/對應的url為http://backend/

目錄結構

在根目錄下面有這幾個子目錄

backend——後台web程序
common——公共的文件
console——控制台程序
environments——環境配置
frontend——前台web程序
根目錄下面還有包含一些文件

.gitignore ——git版本控制中忽略的文件和目錄,如果你有一些你不想要的文件到你的源代碼裡面就把它添加到這個文件中。
composer.json——這個下面會描述
init——在Composer裡面所描述初始化腳本
init.bat——和上面一樣,不過是Windows下面的
LIENSE.md——這個就不說了
README.md——同上
requirements.php——Yii運行環境要求檢測文件
yii——控制台程序引導文件
yii.bat——Windows下面的東東

系統定義的路徑別名

@yii ——框架的目錄。
@app——當前正在運行的應用程序的基本路徑。
@common -公共文件目錄。
@frontend——前端web應用程序目錄。
@backend ——後端web應用程序目錄。
@console -控制台目錄。
@runtime——當前正在運行的web應用程序的運行時目錄
@vendor ——基礎框架目錄。
@web ——當前正在運行的web應用程序的url
@webroot——當前正在運行的web應用程序的web根目錄。

應用程序

這個模板包含三個應用程序,前台、後台和控制台。前台通常來說就是展現給終端用戶的,也就是項目本身。後台就是管理員控制面板,包含有分析以及類似的功能等。控制台主要用來做一些定時任務和一些簡單的服務器的管理,另外也可以用來部署應用程序、數據庫的遷移、資源的管理等。

common 目錄提供一些公共的文件,可用於多個應用程序,例如User模型。

前台和後台都是web應用程序,他們都包含一個web目錄,也就是web的根目錄,在部署服務器的時候就得要指向這個目錄。
每個應用程序都有他們自己的命名空間以及對應的別名。同理,common也有自己的命名空間和對應的別名。

配置和開發環境

在平常的開發中,直接設置配置文件會有多個問題

每個團隊成員都有自己的配置選項。如果提交這樣的配置將影響其他團隊成員。
產品數據庫密碼和API密鑰不應該在代碼倉庫中。
在有多個服務器的情況下:開發、測試、生產,每一個服務器都應該有自己的配置。
每種情況下都定義所有配置選項很重復,並且還要花太多的時間去維持它。

為了解決這些問題,Yii引入了一個非常簡單的環境的概念。每個環境由環境目錄下的一組文件的集合來表示。init命令用於不同環境之間切換。它只是復制從環境目錄中所有應用程序的根目錄。

通常環境包含應用程序引導文件如index.php和以-local.php後綴的配置文件。這些已經添加到.gitignore中,所以不會再添加到源碼倉庫中。
為了避免重復的配置文件相互覆蓋。例如,前台應用程序按照以下順序來讀取配置:

common/config/main.php
common/config/main-local.php
frontend/config/main.php
frontend/config/main-local.php

參數文件按以下順序讀取

common/config/params.php
common/config/params-local.php
frontend/config/params.php
frontend/config/params-local.php

後面讀取的文件配置會覆蓋前面的配置

整個的流程圖形如下

配置 Composer

應用程序安裝完成後就可以設置要目錄下面的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"
    ]
  }
}

首先,修改一些基本信息。例如名稱,描述,關鍵詞,主頁等等。
你還可以根據你的需要添加更多的應用程序。這些包都是來自packagist.org,可免費的浏覽所有的代碼。
修改完composer.json之後 就可以運行

php composer.phar update --prefer-dist

,等下載並安裝完成後就可以開始使用了。自動加載的類將會自動處理。

創建從後端到前端的鏈接

  通常情況下需要從後端應用程序連接到前端應用程序。因為前端應用程序可能包含自己的URL管理規則,所以需要再添加一個不同名字的後台的URL管理規則。

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愛好者中文社區門戶)

翻譯來源:http://www.yiiframework.com/doc-2.0/guide-apps-advanced.html
(Yii Framework 2.0 API Decumentation)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved