1. Magento 2 文件結構
app
此文件夾中有三個主要子目錄,它們是design
、i18n
和etc
。您自定義的所有模塊都應包含在app/code//
目錄中。此外,這里還推薦您所有的第三方模塊。
您應該將自定義商店主題存儲在app/design/frontend
子目錄下,并且所有管理主題都應存儲在app/design/adminhtml
子目錄中。
app/i18n
目錄是存儲語言包的文件夾。如果您想創建一個可以更好地滿足客戶需求的多語言商店,您可以使用此文件夾。
全新安裝后,code
子目錄將丟失。此外,為避免自定義模塊與 Magento 的核心模塊混合,您需要在vendor
目錄中添加所有 Magento 核心模塊。這是因為,與 Magento 1 版本中所有 Magento 核心模塊都必須提交到其 Git 存儲庫不同,在 Magento 2 中,這兩者是分開的。
通過包含 Magento 核心模塊的 Composer,您可以存儲所有已安裝的軟件包。升級供應商文件后,您可以在此文件夾中擴展模塊,而不是直接在此文件夾中工作,這樣您的所有更改都會被覆蓋app/code/ or app/design
。
phpserver
這具有Router.php
可用于實現 PHP 內置服務器的文件。但是,不建議您使用此文件,因為它可能會給您的站點帶來許多潛在的重大安全漏洞。
bin
Magento CLI 可執行腳本存儲在此目錄中。使用此腳本,將激活 Magento 命令,這有助于清除緩存或重新索引。
setup
這包含與 Magento 的安裝設置相關的所有文件
generated
這是存儲 Magento 生成的代碼的地方。默認情況下,如果類被注入到構造函數中,Magento 會生成代碼來創建不存在的工廠類。
var
這包括生成的類、會話、緩存、數據庫備份和緩存的錯誤報告。在此文件夾中,您可以生成許多子目錄的內容,包括var/di
運行php bin/magento setup:di:compile
時間。
var/log
存儲 Magento 日志文件主要是 exception.log 和 system.log 文件。
var/cache
包含 Magento 的所有緩存。建議您使用php bin/magento cache:clean
命令清除緩存,以便查看您的開發更改。
dev
這包含所有 Magento 和供應商庫文件。它還包括所有基于非模塊的 Magento 代碼。
lib
一個index.php
文件將存儲在此目錄中。您可以使用此文件在生產模式下運行應用程序。此目錄為您提供了一種安全措施,可以限制對根目錄資產的公共訪問。此外,此文件夾還包括您的 Magento 主題生成的靜態文件
pub
這是一個包含框架核心的目錄。這里也是您可以安裝附加模塊的地方。供應商文件夾的所有操作都是使用 composer.json 文件進行的。如果您查看此文件夾,您將看到沒有文件或文件夾。這僅僅是因為 composer.json 將創建這些文件和文件夾。您將能夠看到在 composer.json 文件下定義的大量包。
2. 組件文件結構
您可以看到Magento 2 文件結構包含 app、bin、setup、phpserver、var、generated、lib、pub、dev。在下圖中查看更多信息。
在提供了有關定義和結構的一些基本知識之后,在這一部分中,我將介紹組件類型的不同文件結構。Magento 的應用程序將查找創建組件的文件,包括組件文件結構內特定位置的配置文件。為了確保組件類型正常工作,您需要遵循預定義的文件結構。
根目錄
組件的根目錄與其名稱匹配,還包括其所有子目錄和文件。根據您安裝 Magento 的方式,您的組件的根目錄可以放在以下兩個位置之一:
-
/app
: 這是組件開發的一個可取的位置。通過使用克隆 Magento 2 GitHub 存儲庫,您可以設置此環境。-
申請
app/code
模塊 -
申請
app/design/frontend
店面主題 -
申請
app/design/adminhtml
管理員主題 -
申請
app/i18n
語言包
-
-
/vendor
:這個位置可以在 composer create-project 用于安裝 Magento 2 元包的安裝中找到,通過該包下載 CE 或 EE 代碼。如果您提取壓縮的 Magento 2 存檔以安裝 Magento,也可以找到此位置。
所需文件
所有組件都需要以下文件:
-
registration.php
:這是將您的組件注冊到 Magento 的文件。在此文件中,組件的根目錄名稱用作組件名稱。因此,默認情況下,組件安裝在/vendor directory
. -
etc/module.xml
:這是定義組件基本信息的文件,例如組件依賴關系和版本號。版本號將用于確定在執行時更新哪些模式和數據bin/magento setup:upgrade
。 -
composer.json
:這是定義組件在運行時所需的依賴項的文件。
3.模塊文件結構
在下圖中,您將看到典型的文件結構如下所示:
常用目錄
以下是一些常見的模塊目錄:
-
Block
:包括 PHP 視圖類作為模塊邏輯模型視圖控制器(MVC)垂直實現的一部分。 -
Controller
: 包括 PHP 控制器類作為模塊邏輯 MVC 垂直實現的一部分。 -
etc
:包括配置文件;尤其是module.xml
,這是必需的。 -
Model
: 包括 PHP 模型類作為模塊邏輯 MVC 垂直實現的一部分。 -
Setup
:包括模塊數據庫結構和數據設置的類。這些數據在安裝或升級時被調用。
其他目錄
這些文件夾可以添加用于配置或其他項目輔助功能,例如本地化、插件和布局文件。
-
Api
: 包括任何暴露給 API 的 PHP 類。 -
Console
: 包括 CLI 命令。 -
Cron
: 包括 cron 作業定義。 -
CustomerData
: 包括部分文件。 -
Helper
: 包括聚合功能。 -
i18n
: 包括本地化文件。 -
Observer
: 包括用于執行來自偵聽器的命令的文件。 -
Plugin
: 包括任何需要的插件。 -
UI
: 包括數據生成文件。 -
view
:包括視圖文件,包含靜態視圖文件、電子郵件模板、設計模板和布局文件。