zoukankan      html  css  js  c++  java
  • Magento 2开发教程

    视频在youtube网站国内访问不了,可以使用FQ软件查看。
    视频地址:www.youtube.com/embed/682p52tFcmY@autoplay=1

    下面是视频文字介绍:

    Magento 2系统整体结构是建立在模块的基础上。通常,创建定制的第一步是构建模块。

    要创建模块,需要完成以下步骤:

    1. 创建模块文件夹
    2. 创建 etc/module.xml 文件.
    3. 创建 registration.php 文件.
    4. 运行 bin/magento setup:upgrade脚本安装新模块
    5. 检查模块是否正常工作

    让我们详细地看一下这些步骤。

    创建模块文件夹

    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。如果您使用命令行,代码:

    1. cd 到根文件夹
    2. mkdir app/code/Learning
    3. mkdirapp/code/Learning/FirstUnit

    确保您有权限在安装中创建文件和文件夹

    下一步, 你需要创建 etc/module.xml 文件。 此文件需要模块存在。

    此文件包含以下信息:

    • 模块名称
    • 模块版本
    • 模块依赖

    模块名称定义的文件夹我们刚刚创建的,因为在Magento 2类名称必须遵循的文件夹结构。因为我们创建了文件夹Learning/FirstUnit, our module name will be Learning_FirstUnit 所有属于这个模块的类将从 LearningFirstUnit – 示例: LearningFirstUnitObserverTest.

    模块版本表示数据库架构和数据的当前版本,并用于升级。 例如,假设您决定在模块中修改表的架构。 你怎么能确保在所有部署代码的情况下会发生这种变化?通过直接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 MagentoFrameworkComponentComponentRegistrar::register(
    MagentoFrameworkComponentComponentRegistrar::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新模块。

    查看原文

  • 相关阅读:
    2020系统综合实践 第三次实践作业
    2020系统综合实践 第二次实践作业
    2020系统综合实践 第一次实践作业
    第03组 Beta版本演示
    第03组 Beta冲刺(4/4)
    第03组 Beta冲刺(3/4)
    OO第四次博客作业
    OO第三次博客作业
    OO第二次博客作业
    OO第一次博客作业
  • 原文地址:https://www.cnblogs.com/xz-src/p/6920354.html
Copyright © 2011-2022 走看看