elenyum/maker
最新稳定版本:1.0
Composer 安装命令:
composer require elenyum/maker
包简介
This bundle make module width controller, service and entity from json or console command.
README 文档
README
ElenyumMakerBundle is a tool for generating Symfony modules based on Elenyum specifications (ESL). The bundle allows you to create controllers, entities, services, and repositories from a pre-defined JSON file.
Installation
composer require elenyum/maker
Configuration
1. Add the Route
Manually add the route for module generation in config/routes/elenyum_maker.yaml:
app.maker: path: /elenyum/dash/maker methods: - POST - GET defaults: { _controller: elenyum_maker }
2. Configure Security
Add access control rules in config/packages/security.yaml:
security: access_control: - { path: ^/elenyum/dash/maker, roles: ROLE_ADMIN }
3. Bundle Configuration
Create a configuration file config/packages/elenyum_maker.yaml:
elenyum_maker: cache: enable: false item_id: 'elenyum_maker' root: path: '%kernel.project_dir%/module' namespace: 'Module' prefix: 'Module' doctrine: names: - 'ElenyumAuthorizationBundle' securityName: 'api_key'
Usage
Console Command
To create a module, use the following console command:
php bin/console elenyum:make -f path/to/els.json
- -f, --file: Path to the ESL specification JSON file.
Aliases
Alias for the command:
php bin/console e:m -f path/to/els.json
Generated Files
When generating a module, the following structure is created:
/module/{ModuleName}/v1/
├── Controller
│ ├── {Entity}GetController.php
│ ├── {Entity}ListController.php
│ ├── {Entity}PostController.php
│ ├── {Entity}PutController.php
│ └── {Entity}DeleteController.php
├── Entity
│ └── {Entity}.php
├── Service
│ └── {Entity}Service.php
└── Repository
└── {Entity}Repository.php
- Controllers are created for
GET,POST,PUT,DELETEmethods. - Services and repositories are generated for each entity.
OpenAPI Documentation
OpenAPI documentation is generated using the securityName parameter from elenyum_maker.yaml. It is applied in the controller attributes as shown:
#[Auth(name: 'Bearer', model: News::class)]
If no authorization is required, the parameter can be left empty.
Example of Full Route Configuration
app.maker: path: /elenyum/dash/maker methods: - POST - GET defaults: { _controller: elenyum_maker }
Notes
- Configuration and route files are created manually.
- Doctrine configuration is set in
elenyum_maker.yaml. - The path for module generation:
%kernel.project_dir%/module.
统计信息
- 总下载量: 22
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-12-07