umc / module-crud
Magento 2 模块,用于减少 CRUD 的样板代码
2.1.0
2024-05-02 08:58 UTC
Requires
- php: ~7.1.3||~7.2.0||~7.3.0||~7.4.0||~8.0.0||~8.1.0||~8.2.0||~8.3.0||~8.4.0
- magento/framework: *
- magento/module-backend: *
- magento/module-config: *
- magento/module-ui: *
This package is auto-updated.
Last update: 2024-09-02 09:41:55 UTC
README
目的
此模块旨在为 Magento 2 开发者设计,以减少创建 CRUD 扩展时的样板代码。
兼容性
- 2.4.6
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.5
- 2.3.4
- 可能适用于 2.3.4 之前的版本,但不保证。
它做什么
它提供了一组可配置、可组合或预置的类和接口,以避免重复编写相同的代码。
示例
(几乎)每个实体的 Save
控制器都会执行以下操作
- 从 POST 中检索数据。
- 可能或可能不会转换通过 POST 接收到的数据
- 创建新的实体或从数据库中检索请求的实体
- 将数据分配给上述实体
- 持久化实体
- 重定向到“某处”,带有成功或错误消息。
这里唯一的变量是
- 要添加/修改的实体
- 在将其附加到实体之前处理数据的方式
此模块提供了一个通用的管理 Save
控制器,其依赖项是一组其他类/接口,它们仅负责上述责任之一
- 实体管理器负责从数据库检索数据或实例化新实体
- 数据处理程序(接口)处理数据
- 实体配置类将包含关于正在处理实体的详细信息。
- 辅助对象:数据持久化器(基本上是会话)用于在发生错误并需要将带有先前提交数据的表单重定向回时保存提交的数据。
所有这些都可以通过 di.xml
为您要管理的每个实体进行配置。
此模块还添加了一些额外的代码生成器(类似于核心的工厂或代理等),将自动生成仓库类和其他一些类。
目标受众
- 此模块旨在为厌倦了重复编写相同内容的经验丰富的 Magento 2 开发者。
- 此模块不适用于初级开发者。
- 为了使用此模块,您必须具备良好的知识...
- Magento CRUD 模块的工作原理
- 什么是 虚拟类型
- Magento 中 DI 的工作原理
使用此模块的优势
- 要编写的代码更少,这意味着要测试的代码更少,可能发生故障的代码也更少
- 您的复制/粘贴分析器将停止抱怨您有看起来相同的类。
- 减少开发时间。(希望如此)
- 您将有一个编写所有 CRUD 模块的标准方式(无论好坏,至少是一致的)
- 这涵盖了您在开发过程中遇到的大部分情况。如果此模块未涵盖您的情况之一,您可以选择不扩展或组合此模块中的类,并使用您自己的。
使用此模块的缺点
- 需要编写更多的配置(YEAH...xml文件)。
- 使调试稍微困难一些。
- 增加了一个新的抽象层...或者 7. 开玩笑的。只有一个。
- 您为项目添加了一个新的依赖,您的所有 CRUD 模块都将依赖于这个模块。
安装
- 通过 composer(推荐)
-composer require "umc/module-crud=*"
- 手动安装
- 从https://github.com/UltimateModuleCreator/umc-crud
下载一份,并包含app/code/Umc/Crud
中的所有文件。
安装后
- 运行
php bin/magento setup:upgrade [--keep-generated]
- 检查该文件是否存在
app/etc/crud/di.xml
。如果不存在,运行命令bin/magento umc:crud:deploy
。如果遇到错误,您可以将其从vendor/umc/module-crud/etc/crud/di.xml
复制到app/etc/crud/di.xml
。
文档
有关此扩展应该如何工作的更多详细信息,请访问 https://github.com/UltimateModuleCreator/umc-crud/wiki
捐赠
如果您真的喜欢这个扩展,并从中受益匪浅,节省了大量开发时间,请考虑通过 PayPal 进行小(或大 - 我不介意)捐赠