orba / magento2-codegen
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
由 Orba 创建
灵感来源于 https://github.com/staempfli/magento2-code-generator
目的
在日常 Magento 2 开发中,有一些常见的任务需要开发重复的代码,而这些代码难以简单地复制粘贴。本应用程序的目的是自动化此类代码的创建,以便开发者可以专注于业务逻辑,从而更加高效和快乐。
市场上已有其他工具可以生成 Magento 的样板代码,但我们更进一步。我们工具的独特价值在于它可以用在现有的代码库中。工具生成的代码会自动与当前代码合并(例如,配置 XML 文件、requirejs-config JS 文件等)。此外,我们的目标是生成高质量的代码,使用现代 PHP 功能和 Magento 编码标准。
演示
只需一分钟就创建一个新的实体并包含所有管理 CRUD 操作?为什么不呢 ;-)
控制台命令
生成的代码
管理面板
支持的 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
路径。
您可以包含多个模板目录。
要覆盖核心模板,只需将核心模板复制到您的模板目录,并根据需要做出更改。
使用
- 列出所有模板
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/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 中您可以找到为开发者提供的额外文档。