lingaro / magento2-codegen
Magento 2 代码生成器
Requires
- php: ~7.4.0 || ~8.1.0
- ext-dom: *
- ext-libxml: *
- adbario/php-dot-notation: ^2.2
- icanboogie/inflector: ^2.0
- nikic/php-parser: ^4.3
- ovidigital/js-object-to-json: ^1.0
- symfony/config: ^4.0 || ^5.0
- symfony/console: ^4.0 || ^5.0
- symfony/contracts: ^1.0.2
- symfony/debug: ^2.4 || ~3.0 || ~4.0 || ~5.0
- symfony/dependency-injection: ^4.0 || ^5.0
- symfony/filesystem: ^4.0 || ^5.0
- symfony/finder: ^4.0 || ^5.0
- symfony/polyfill-ctype: ^1.8
- symfony/yaml: ^4.0 || ^5.0
- twig/twig: ^3.0
Requires (Dev)
- ext-simplexml: *
- phpmd/phpmd: ^2.10
- phpunit/phpunit: ^9
- psr/cache: ^1.0
- psr/log: ^1.0
- squizlabs/php_codesniffer: ^3.6
- symfony/event-dispatcher: ^4.2 || ^5.0
- symfony/phpunit-bridge: ^4.2 || ^5.0
- symfony/var-dumper: ^4.2 || ^5.0
Provides
Conflicts
- symfony/config: <3.4
- symfony/dependency-injection: <4.2
README
由 Lingaro 创建
灵感来源于 https://github.com/staempfli/magento2-code-generator
目的
在日常的 Magento 2 开发中,有些常见的任务需要编写重复的代码,而这些代码很难简单地复制粘贴。本应用程序的目的是自动化创建此类代码,从而使开发者能够专注于业务逻辑,并因此更加高效和快乐。
市场上还有其他工具可以生成 Magento 标准代码,但我们更进一步。我们工具的独特价值在于它可以与现有的代码库一起使用。由该工具生成的代码将与当前代码自动合并(例如,配置 XML 文件、requirejs-config JS 文件等)。此外,我们的目标是生成高质量的代码,使用现代 PHP 功能和 Magento 编码标准。
演示
在一分钟内创建一个新的实体并具有所有管理 CRUD 操作?为什么不呢?;-)
控制台命令
生成的代码
管理面板
支持的 Magento 版本
- 2.4.0
- 2.4.1
- 2.4.2
- 2.4.3
- 2.4.4
- 2.4.5
注意:Magento 的 PHP 最小版本为 7.4。
可用模板
apiEndpoint
- 创建 API 端点
block
- 创建一个块及其对应的 phtml 模板文件
cache
- 创建缓存类型
categoryAttributes
- 创建数据补丁,将自定义属性添加到分类实体中,并包含用于渲染这些属性的 ui_component
configField
- 为已存在的存储配置组创建配置字段
configGroup
- 为已存在的存储配置部分创建组
configSection
- 在现有的存储配置标签中创建部分
configTab
- 为存储配置创建标签
consoleCommand
- 创建控制台命令
cron
- 创建 cron 作业(可选)及其 cron 组
crud
- 创建新的实体以及其在管理面板中的所有 CRUD 操作
customerAttributes
- 创建数据补丁,将自定义属性添加到客户实体中
emailTemplate
- 创建一个系统电子邮件模板,其中包含用于发送它的类和允许管理员自定义它的配置
eventObserver
- 为给定事件创建事件观察者
frontPageController
- 创建一个渲染自定义页面的前端控制器
frontPostController
- 创建一个非常基本的前端 POST 控制器
importEntity
- 创建一个导入模型,用于将数据导入自定义实体表
jsMixin
- 创建一个 JS 混合
jsModule
- 创建一个 JS 模块
model
- 创建一个具有相应存储库、搜索结果、资源模型、集合、db_schema.xml 和 API 的模型
module
- 创建启动自定义模块所需的基本配置
productAttributes
- 创建数据补丁,将自定义属性添加到产品实体中
queueMessage
- 使用 AMQP 连接创建消息队列消息及其发布者和处理器
quoteFields
- 为报价和订单创建自定义字段
searchCriteriaUsage
- 创建管理类和搜索条件使用
theme
- 创建启动自定义主题所需的基本配置
viewModel
- 创建视图模型及其 phtml 模板文件
widget
- 创建小工具
安装
推荐将此应用程序作为 Magento 的 Composer 开发依赖项添加
composer require --dev lingaro/magento2-codegen
如果您不想将此应用程序附加到您的Magento上,您也可以简单地克隆存储库并作为独立库使用。别忘了运行composer install
以安装所有必需的依赖项。
配置
在包的config
目录或您的Magento根目录中创建您自定义的配置文件(对于Lingaro开发者不是必需的)。
cp vendor/lingaro/magento2-codegen/config/codegen.yml.dist vendor/lingaro/magento2-codegen/config/codegen.yml
或者
cp vendor/lingaro/magento2-codegen/config/codegen.yml.dist codegen.yml
并编辑默认值。
您可以通过在您的codegen.yml
中包含以下内容来添加自己的模板目录:
templateDirectories:
- { path: "path/to/templates" }
模板文件夹的path
必须是相对于包目录的相对路径,例如,如果您想将私有模板添加到您的Magento dev
文件夹,您应该使用../../../dev/codegen_templates
路径。
您可以包含多个模板目录。
要覆盖核心模板,只需将核心模板复制到您的模板目录,并根据需要做出更改。
使用方法
- 列出所有模板
bin/codegen template:list
- 显示模板信息
bin/codegen template:info <template>
- 生成模板
bin/codegen template:generate <template>
对于类型为module
(大多数)的模板,此命令必须在包含registration.php
文件的模块根目录上执行。
对于类型为root
的模板,此命令必须在Magento根目录上执行。
示例
cd /path/to/magento/app/code/Lingaro/TestModule
../../../../vendor/bin/codegen template:generate block
3.1. 选项
贡献
请随时通过提交拉取请求将新的模板、错误修复和功能贡献给我们。使用pull request提交您的代码以进行审查。
请注意,我们要求所有代码都与PSR12兼容。此外,我们使用以下PHPMD规则集验证代码:cleancode、codesize、controversial、design、unusedcode。
您可以在dev/docs.md中找到开发者的附加文档。