orba/magento2-codegen

此包已被弃用,不再维护。作者建议使用 lingaro/magento2-codegen 包。

Magento 2 代码生成器

3.4.0 2023-05-18 15:55 UTC

This package is auto-updated.

Last update: 2023-06-07 11:13:00 UTC


README

Orba 创建

灵感来源于 https://github.com/staempfli/magento2-code-generator

目的

在日常 Magento 2 开发中,有一些常见的任务需要开发重复的代码,而这些代码难以简单地复制粘贴。本应用程序的目的是自动化此类代码的创建,以便开发者可以专注于业务逻辑,从而更加高效和快乐。

市场上已有其他工具可以生成 Magento 的样板代码,但我们更进一步。我们工具的独特价值在于它可以用在现有的代码库中。工具生成的代码会自动与当前代码合并(例如,配置 XML 文件、requirejs-config JS 文件等)。此外,我们的目标是生成高质量的代码,使用现代 PHP 功能和 Magento 编码标准。

演示

只需一分钟就创建一个新的实体并包含所有管理 CRUD 操作?为什么不呢 ;-)

控制台命令

Console command

生成的代码

Generated code

管理面板

Admin panel

支持的 Magento 版本

  • 2.3.7
  • 2.4.0
  • 2.4.1
  • 2.4.2
  • 2.4.3
  • 2.4.4

注意:Magento 的 PHP 最小版本为 7.4。

可用的模板

apiEndpoint - 创建 API 端点

block - 创建一个块及其 phtml 模板文件

cache - 创建缓存类型

categoryAttributes - 创建数据补丁,将自定义属性添加到类别实体中,并包含渲染这些属性所需的 ui_component

configField - 为已存在的商店配置组创建配置字段

configGroup - 为已存在的商店配置部分创建组

configSection - 在现有的商店配置标签中创建部分

configTab - 为商店配置创建标签

consoleCommand - 创建控制台命令

cron - 创建定时任务和(可选)定时任务组

crud - 创建新的实体并在管理面板中为其实例化所有 CRUD 操作

customerAttributes - 创建数据补丁,将自定义属性添加到客户实体中

emailTemplate - 创建一个系统电子邮件模板,其中包含用于发送它的类以及允许管理员自定义它的配置

eventObserver - 为给定的事件创建事件观察者

frontPageController - 创建一个前端控制器,用于渲染自定义页面

frontPostController - 创建一个非常基本的 front POST 控制器

importEntity - 创建一个导入模型,用于将数据导入到自定义实体表中

jsMixin - 创建一个 JS 混合

jsModule - 创建一个JS模块

model - 创建一个具有相应仓库、searchResult、resourceModel、collection、db_schema.xml 和 API 的模型

module - 创建启动自定义模块所需的基本配置

productAttributes - 创建数据补丁,将自定义属性添加到产品实体

queueMessage - 使用 AMQP 连接创建带有发布者和处理器的队列消息

quoteFields - 为报价和订单创建自定义字段

searchCriteriaUsage - 创建管理类和搜索条件使用

theme - 创建启动自定义主题所需的基本配置

viewModel - 创建视图模型及其对应的 phtml 模板文件

widget - 创建小部件

安装

建议将此应用程序作为 Magento 的 Composer 开发依赖项添加

composer require --dev orba/magento2-codegen

如果您不想将此应用程序与您的 Magento 绑定,您也可以简单地克隆仓库并将其作为独立的库使用。别忘了运行 composer install 来安装所有必需的依赖项。

配置

在包的 config 目录或您的 Magento 根目录中创建自定义配置文件(Orba 开发者不需要此操作)

cp vendor/orba/magento2-codegen/config/codegen.yml.dist vendor/orba/magento2-codegen/config/codegen.yml

cp vendor/orba/magento2-codegen/config/codegen.yml.dist codegen.yml

并编辑默认值。

您可以通过在您的 codegen.yml 中包含以下内容来添加自己的模板目录

templateDirectories:
  - { path: "path/to/templates" }

模板文件夹的 path 必须相对于包目录,例如,如果您想将私有模板添加到您的 Magento dev 文件夹,您应使用 ../../../dev/codegen_templates 路径。

您可以包含多个模板目录。

要覆盖核心模板,只需将核心模板复制到您的模板目录,并根据需要做出更改。

使用

  1. 列出所有模板
bin/codegen template:list
  1. 显示模板信息
bin/codegen template:info <template>
  1. 生成模板
bin/codegen template:generate <template>

对于类型为 module(大多数模板)的模板,此命令必须在包含 registration.php 文件的模块根目录中执行。

对于类型为 root 的模板,此命令必须在 Magento 根目录中执行。

示例

cd /path/to/magento/app/code/Orba/TestModule
../../../../vendor/bin/codegen template:generate block

3.1. 选项

长名称 短名称 描述 示例
--root-dir -r 如果指定,代码将在该根目录生成。如果目录不存在,它将被自动创建。 bin/codegen -r"/var/www/magento/app/code/Orba/TestModule" template:generate block
--force-merge -m 使用 "all" 以自动运行所有代码合并器。使用 "experimental" 以自动运行非实验性代码合并器。 bin/codegen template:generate -mall block
--force-override -o 如果指定,所有未合并的文件将被自动覆盖。 bin/codegen template:generate -o block
--yaml-path -y 如果指定,属性值将从 YAML 文件收集,而不是通过控制台提示。 bin/codegen -y"lib/internal/codegen/templates/block/.no-copied-config/example.yml" template:generate block

贡献

请随意通过新模板、错误修复和功能贡献。使用拉取请求提交您的代码以供审查。

请注意,我们要求所有代码与 PSR12 兼容。此外,我们使用以下 PHPMD 规则集验证代码:cleancode、codesize、controversial、design、unusedcode。

dev/docs.md 中您可以找到为开发者提供的额外文档。