在整體的代碼庫只有一個檔夾公開發佈到Web伺服器。它就是web目錄。Web根目錄目錄之外的其他檔夾Web伺服器不可觸碰的。
注 - 所有專案依賴位於composer.json檔。Yii2已經由 Composer 幾個重要的軟體包包含在你的專案中。這些包有以下幾種-
-
GII - 代碼生成工具
-
調試控制臺
-
Codeception測試框架
-
SwiftMailer庫
-
Twitter Bootstrap UI庫
前三個包只在開發環境中有用。
Yii2的應用程式結構是精確的,明確的。它包含以下檔夾 -
-
assets - 此檔夾包含在網頁中引用的所有 .js和.css檔
-
commands - 此檔夾包括可從終端中使用的控制器
-
config - 此檔夾包含配置檔用於管理資料庫,應用程式和應用參數
-
mail - 此檔夾包含郵件佈局
-
models - 該檔夾包函在應用程式中使用的模型
-
runtime − 此檔夾是用於存儲運行時數據
-
tests − 此檔夾包含所有的測試(驗收,單元測試,功能)
-
vendor - 此檔夾包含由Composer提供所有的第三方軟體包。
-
views − 此檔夾為視圖檔夾目錄,由控制器顯示。layout 檔夾是用於頁面範本
-
web − 網站入口點
應用程式結構
以下是應用程式的結構示意圖。


Yii2 – 對象
下麵的列表包含了所有Yii2的對象 -
模型,視圖和控制器
模型數據表示(通常從資料庫)。視圖是用於顯示的數據。控制器是用於處理請求和產生回應。
組件 - Components
創建一個可重複使用的功能,用戶可以編寫自己的組件。組件只是包含邏輯對象。例如,組件可以是一個重量轉換器。
應用程式組件 - Application components
這些都是在整個應用只實例化的一個對象。 組件和應用組件之間的主要區別是,後者在整個應用程式只有一個實例。
小工具 - Widgets
Widget是含有邏輯和渲染代碼可重用的對象。一個小部件可以是,例如,一個畫廊滑塊。
篩檢程式 -Filters
篩檢程式是在控制器動作的執行之前或之後運行的對象。
模組 - Modules
可以認為模組就是可重用的子應用程式,包括模型,視圖,控制器等等。
擴展 - Extensions
擴展是可以由 Composer 來管理的軟體包。