enanobots/m2-datapatchcreator

Magento 2 数据补丁创建器

1.0.8 2024-04-17 14:00 UTC

This package is auto-updated.

Last update: 2024-09-17 14:53:33 UTC


README

Open Source Love

Magento 2 DataPatchCreator

当与大型团队协作时,有时会有人忘记为CMS页面、块、配置或产品属性创建数据补丁。
此模块允许您在Magento 2管理面板中创建PHP数据补丁文件,并将它们导出为PHP文件,您可以将其添加到您的代码库中。

重要

此模块的主版本不支持与PageBuilder一起使用,以确保与2.3.x版本兼容性

如果您想从Magento 2.4.3开始使用PageBuilder,则必须安装额外的composer包

enanobots/m2-datapatchcreator-pagebuilder

详细信息: https://github.com/enanobots/m2-datapatchcreator-pagebuilder-compatibility

安装

安装通过composer完成

composer require enanobots/m2-datapatchcreator

安装包后,只需运行

php bin/magento setup:upgrade

要求

  • PHP 7.3及更高版本
  • Magento 2.3.x及更高版本

测试于

  • Magento 2.3.x开源
  • Magento 2.4.x开源

数据补丁可用数据类型

  • 产品属性(带图像同步)
  • CMS页面
  • CMS块
  • 商店配置
  • 未来版本中还将增加更多

如何创建数据补丁?

您在Magento 2管理面板中完成所有操作。 :)

创建Magento 2数据补丁文件有两种方法

  • 直接下载(默认选项
    • 对于单个实体,将生成一个PHP文件
    • 对于数据补丁文件集(批量导出),将生成一个包含补丁文件的ZIP文件
  • 本地文件
    • 文件始终创建在指定的位置(无论是单个实体还是批量导出)

商店副本之间的图像同步

模块允许在Magento 2商店副本之间同步图像。
用于dump / fetch图像的类需要实现ImageSyncInterface

默认图像同步:LocalFile

  • 当创建补丁文件时,文件将复制到目标位置
  • 文件将从配置的位置复制到Magento 2的media文件夹

添加新的图像同步模型

图像同步模型通过DI.XML中的ImageSync类数组传递

    <type name="Nanobots\DataPatchCreator\Model\ImagesSync\ImageSync">
        <arguments>
            <argument name="syncModels" xsi:type="array">
                <item name="LocalFile" xsi:type="object">Nanobots\DataPatchCreator\Model\ImagesSync\LocalFile</item>
            </argument>
        </arguments>
    </type>

如果您想添加新的ImageSync模型,只需通过di.xml添加到syncModels数组的新元素即可
此键需要与为sync_model配置值设置的商店配置集匹配。

SyncMethods创建一个插件,并确保value字段与通过di.xml传递的数组键匹配。

例如

    <type name="Nanobots\DataPatchCreator\Model\ImagesSync\ImageSync">
        <arguments>
            <argument name="syncModels" xsi:type="array">
                <item name="AmazonS3" xsi:type="object">YourVendor\YourModule\ImagesSync\AmazonS3</item>
            </argument>
        </arguments>
    </type>
        return [
            ['value' => "AmazonS3", 'label' => __('Copy images to designated folder')],
        ];

在管理面板中设置配置将强制使用您的模块进行图像同步。

建议的包