saomainek / laravel-api-generator
Laravel API/Scaffold/CRUD 生成器,只需一条命令即可生成控制器、仓库、模型、迁移和 routes.php 更新。
Requires
- php: >=5.4.0
- illuminate/html: ~5.0
- laracasts/flash: ~1.3
This package is not auto-updated.
Last update: 2024-09-14 19:03:59 UTC
README
版本兼容性
我喜欢创建 API,我也参与了许多需要 API 的项目。但问题是我总是面临设置所有样板代码。例如,每个端点都需要迁移、模型、控制器、仓库等等。我希望有一种方法可以简化这个过程,这就是这个包的诞生。
这个 API 生成器允许您使用 artisan 命令自动生成所有这些文件,节省您的时间。它不仅会自动生成文件,还会设置命名空间。
artisan 命令可以生成以下项目
- 迁移文件
- 模型
- 仓库
- 控制器
- 视图
- index.blade.php
- table.blade.php
- show.blade.php
- show_fields.blade.php
- create.blade.php
- edit.blade.php
- fields.blade.php
- 调整 routes.php
您的简单 CRUD 和 API 就在几秒钟内准备好了。
以下是完整文档。
升级指南.
文档正在制作中...
文档
注意
确保安装了 auth "make:auth"
安装
-
将此包添加到您的 composer.json
"require": { "laracasts/flash": "~1.3", "laravelcollective/html": "5.2.*", "bosnadev/repositories": "dev-master", "sawmainek/laravel-api-generator": "dev-master" }
-
运行 composer update
composer update
-
将 ServiceProviders 添加到
config/app.php
中的 providers 数组。
因为我们使用这两个包 laravelcollective/html & laracasts/flash 作为依赖。
所以我们需要添加那些 ServiceProviders。Collective\Html\HtmlServiceProvider::class, Laracasts\Flash\FlashServiceProvider::class, Mitul\Generator\GeneratorServiceProvider::class,
此外,为了方便,将这些外观添加到
config/app.php
中的别名数组中。'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class, 'Flash' => Laracasts\Flash\Flash::class
配置
发布配置文件 generator.php
。
php artisan vendor:publish --provider="Mitul\Generator\GeneratorServiceProvider"
配置文件 (config/generator.php
) 包含所有生成文件的路径
base_controller
- 所有控制器的基类控制器
path_migration
- 生成迁移文件的路径
path_model
- 生成模型文件的路径
path_repository
- 生成仓库文件的路径
path_controller
- 生成控制器文件的路径
path_api_controller
- 生成 API 控制器文件的路径
path_views
- 创建视图的路径
path_request
- 创建请求文件的路径
path_routes
- routes.php 的路径(如果您使用任何自定义路由文件)
path_api_routes
- api_routes.php 的路径(此文件将包含所有 API 路由)
namespace_model
- 模型的命名空间
namespace_repository
- 仓库的命名空间
namespace_controller
- 控制器的命名空间
namespace_api_controller
- API 控制器的命名空间
namespace_request
- 请求的命名空间
model_extend_class
- 模型的扩展类
api_prefix
- API 前缀 api_version
- API 版本
use_dingo_api
- 与 dingo/api 包集成 API
发布 & 初始化
主要,我们需要做三件基本的事情来开始。
-
发布一些常见视图,如
errors.blade.php
和paginate.blade.php
。 -
发布包含所有API路由的
api_routes.php
。 -
为API路由初始化
routes.php
。我们需要将api_routes.php
包含到主routes.php
中。php artisan mitul.generator:publish
生成器
执行 artisan 命令生成 API,使用 CRUD 视图或两者兼而有之。
生成 API
php artisan mitul.generator:api ModelName
生成 CRUD Scaffold
php artisan mitul.generator:scaffold ModelName
生成带有 API 的 CRUD Scaffold
php artisan mitul.generator:scaffold_api ModelName
例如:
php artisan mitul.generator:api Project
php artisan mitul.generator:api Post
php artisan mitul.generator:scaffold Project
php artisan mitul.generator:scaffold Post
php artisan mitul.generator:scaffold_api Project
php artisan mitul.generator:scaffold_api Post
这里是一个示例 fields 输入 JSON
支持的 HTML 字段类型
以下是支持的字段类型和选项列表
- text
- textarea
- password
- file
- checkbox
- radio:male,female,option3,option4
- number
- date
- select:India,USA
自定义
基础控制器
如果您想使用自己的基础控制器或想扩展/修改默认的 AppBaseController,则可以有以下选项
-
如果您想使用另一个控制器(推荐扩展 AppBaseController 以创建新控制器)作为基础控制器,则修改
config/generator.php
中的base_controller
值 -
如果您想修改 AppBaseController,则:
-
在您的控制器路径中发布 AppBaseController
php artisan mitul.generator:publish --baseController
-
修改
AppBaseController.php
的内容,并在config/generator.php
中将其设置为base_controller
-
自定义模板
要使用您自己的自定义模板,
-
将模板发布到
/resources/api-generator-templates
php artisan mitul.generator:publish --templates
-
只保留您想更改的模板。删除您不打算更改的模板。
选项
分页记录
要分页记录,您可以指定分页选项,例如:
php artisan mitul.generator:api Post --paginate=10
模型软删除
要使用 SoftDelete,使用 softDelete 选项,
php artisan mitul.generator:api Post --softDelete
从文件获取字段
如果您想从文件传递字段,则可以创建字段 JSON 文件并通过命令行传递。这里是一个示例 fields.json
您必须在命令中传递选项 --fieldsFile=绝对文件路径或从基本目录的路径
。例如:
php artisan mitul.generator:scaffold_api Post --fieldsFile="/Users/Mitul/laravel-api-generator/fields.json"
php artisan mitul.generator:scaffold_api Post --fieldsFile="fields.json"
自定义表名
您也可以指定自己的自定义表名,
php artisan mitul.generator:api Post --tableName=custom_table_name
跳过迁移
您也可以跳过迁移生成,
php artisan mitul.generator:api Post --skipMigration
记住令牌
要在迁移文件中生成 rememberToken 字段,
php artisan mitul.generator:api Post --rememberToken
从现有表生成生成器
要使用现有表生成器,您可以指定 --fromTable
选项。需要指定 --tableName
选项并指定表名。
请确保您已安装 doctrine/dbal
包。
限制:目前它尚未完全工作(工作正在进行中)。它不会创建迁移文件。您需要在生成的文件中调整一些内容,如时间戳、主键等。
php artisan mitul.generator:api Post --fromTable --tableName=posts
致谢
此 API 生成器由 Mitul Golakiya 创建。
欢迎提交错误和分支:)