視頻在youtube網站國內訪問不了,可以使用翻牆軟體查看。 視頻地址:www.youtube.com/embed/682p52tFcmY@autoplay=1 下麵是視頻文字介紹: Magento 2系統整體結構是建立在模塊的基礎上。通常,創建定製的第一步是構建模塊。 要創建模塊,需要完成以下步驟 ...
視頻在youtube網站國內訪問不了,可以使用FQ軟體查看。
視頻地址:www.youtube.com/embed/682p52tFcmY@autoplay=1
下麵是視頻文字介紹:
Magento 2系統整體結構是建立在模塊的基礎上。通常,創建定製的第一步是構建模塊。
要創建模塊,需要完成以下步驟:
- 創建模塊文件夾
- 創建
etc/module.xml
文件. - 創建
registration.php
文件. - 運行
bin/magento setup:upgrade
腳本安裝新模塊 - 檢查模塊是否正常工作
讓我們詳細地看一下這些步驟。
創建模塊文件夾
Magento 2模塊文件夾可以創建在兩個地方: app/code 和 vendor 文件夾
根據Magento 2已安裝,核心模塊可以位於 vendor/magento/magento-*
文件夾 或 app/code/Magento/
文件夾
您應該為您的新模塊選擇哪些位置?
如果為特定項目構建模塊,最好選擇應用app/code文件夾並提交到項目的存儲庫中。
如果你要構建一個可重用的擴展,最好使用composer來創建它,並將你的模塊放在 vendor/<YOUR_VENDOR>/module-something
文件夾。
在Magento 2每個模塊的名稱由兩部分組成–vendor和模塊本身。換句話說,模塊分為vendor,所以你需要定義vendor和模塊名稱。在這個例子中,讓我們的vendor名稱“Learning”和“firstunit”模塊。
讓我們創建文件夾 app/code/Learning 和這個文件夾裡面放一個文件夾:FirstUnit。如果您使用命令行,代碼:
cd
到根文件夾mkdir app/code/Learning
mkdirapp/code/Learning/FirstUnit
確保您有許可權在安裝中創建文件和文件夾
下一步, 你需要創建 etc/module.xml
文件。 此文件需要模塊存在。
此文件包含以下信息:
- 模塊名稱
- 模塊版本
- 模塊依賴
模塊名稱定義的文件夾我們剛剛創建的,因為在Magento 2類名稱必須遵循的文件夾結構。因為我們創建了文件夾Learning/FirstUnit
, our module name will be Learning_FirstUnit
所有屬於這個模塊的類將從 Learning\FirstUnit
– 示例: Learning\FirstUnit\Observer\Test
.
模塊版本表示資料庫架構和數據的當前版本,並用於升級。 例如,假設您決定在模塊中修改表的架構。
你怎麼能確保在所有部署代碼的情況下會發生這種變化?通過直接SQL查詢修改資料庫將不起作用。相反,Magento
2已經安裝和升級的每一個模塊的腳本(可選)。這些腳本包含修改資料庫架構或數據的命令。跟蹤是否執行腳本或不使用Magento
2模塊版本。每次執行新的資料庫更改時,您將實現模塊的新版本並更改相應的版本 module.xml
. Magento的保存在資料庫的當前模塊的版本,如果資料庫中的一個值與 module.xml
不匹配, 它將執行升級代碼。
依賴。如果一個模塊依賴於另一個模塊,module.xml
文件將有一個特殊聲明,定義當前模塊依賴的模塊列表。在這個例子中,我們將使我們的模塊依賴magento_catalog。
使用以下命令行代碼,創建文件夾 app/code/Learning/FirstUnit/etc
:
mkdir app/code/Learning/FirstUnit/etc
然後把下麵的代碼:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Learning_FirstUnit" setup_version="0.0.1"> <sequence>
<module name="Magento_Catalog"/> </sequence>
</module>
</config>
請註意,在指定的xml文件中:
- 模塊名稱:
Learning_FirstUnit
(基於我們創建的文件夾) - 版本: 0.0.1 (我們的模塊的初始版本)
- 依賴: Magento_Catalog. 我們可以有多重依賴。在這種情況下, 我們會把
<module name=”..” />
序列節點下的節點。
創建registration.php 文件
每個模塊必須有這個文件,它告訴Magento如何定位模塊。繼續我們的例子,創建文件app/code/Learning/FirstUnit/registration.php
。然後把下麵的內容放進去:
<?php \Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE, 'Learning_FirstUnit',
__DIR__
);
registration.php
是所有模塊都遵循相同模式的標準化文件。
唯一不同的是模塊名,在我們的例子中是Learning_FirstUnit
。
運行 “setup:upgrade” 命令
運行此命令使您的新模塊主動通知Magento的存在。
php bin/magento setup:upgrade
它應該呼應大量的輸出,其中一行應該是Learning_FirstUnit
. 驗證此行代碼是否存在。
檢查新模塊是否處於激活狀態
到目前為止,我們還沒有添加任何有用的代碼到我們的模塊-它仍然是空的(因此無形的)。 為了驗證它已被確認,檢查文件 app/etc/env.php
. 它有一個自動生成模塊的列表是活躍的。
手動更改此列表!
cat app/etc/env.php | grep Learning_FirstUnit
採用這些步驟,你可以成功地創建Magento 2新模塊。