gabrieljaime / laravel-api-generator-gj
Laravel API/Scaffold/CRUD 生成器,只需一条命令即可生成控制器、仓库、模型、迁移文件和更新 routes.php。
Requires
- php: >=5.5.9
- illuminate/support: 5.1.*
Suggests
- doctrine/dbal: Required to use generator from existing table.
This package is not auto-updated.
Last update: 2024-09-14 17:59:03 UTC
README
我喜欢创建 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 就在几秒钟内准备好了。
文档正在制作中...
文档
安装
-
将此包添加到你的 composer.json 中
"repositories": [ { "type": "git", "url": "https://github.com/mitulgolakiya/laracast-flash" } ], "require": { "laracasts/flash": "dev-master", "laravelcollective/html": "5.1.*@dev", "bosnadev/repositories": "dev-master", "gabrieljaime/laravel-api-generator-gj": "dev-master" }
-
运行 composer update
composer update
-
将服务提供者添加到
config/app.php
中的 providers 数组。
因为我们使用这两个包 laravelcollective/html & laracasts/flash 作为依赖。
所以我们也需要添加这些服务提供者。Collective\Html\HtmlServiceProvider::class, Laracasts\Flash\FlashServiceProvider::class, Gabo\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="Gabo\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_routes.php
,其中将包含所有我们的API路由。 -
初始化API路由的
routes.php
。我们需要将api_routes.php
包含到主routes.php
中。php artisan gabo.generator:publish
生成器
运行 artisan 命令以生成API,Scaffold带有CRUD视图或同时带有API和CRUD视图。
生成API
php artisan gabo.generator:api ModelName
生成CRUD Scaffold
php artisan gabo.generator:scaffold ModelName
生成带有API的CRUD Scaffold
php artisan gabo.generator:scaffold_api ModelName
例如:
php artisan gabo.generator:api Project
php artisan gabo.generator:api Post
php artisan gabo.generator:scaffold Project
php artisan gabo.generator:scaffold Post
php artisan gabo.generator:scaffold_api Project
php artisan gabo.generator:scaffold_api Post
支持的HTML字段类型
以下是支持的字段类型及其选项列表
- 文本
- 多行文本
- 密码
- 电子邮件
- 文件
- 复选框
- 单选框:male,female,option3,option4
- 数字
- 日期
- 选择:India,USA
自定义
基础控制器
如果您想使用自己的基础控制器或想要扩展/修改默认的AppBaseController,则可以有以下选项
-
如果您想使用另一个控制器(推荐扩展AppBaseController为新控制器)作为基础控制器,请修改
config/generator.php
中的base_controller
值 -
如果您想修改AppBaseController,则:
-
在您的控制器路径中发布AppBaseController
php artisan gabo.generator:publish --baseController
-
修改
AppBaseController.php
的内容,并将其设置为config/generator.php
中的base_controller
-
自定义模板
要使用自己的自定义模板,
-
将模板发布到
/resources/api-generator-templates
php artisan gabo.generator:publish --templates
-
只留下您想要更改的模板。删除您不打算更改的模板。
选项
分页记录
要分页记录,您可以指定分页选项,例如
php artisan gabo.generator:api Post --paginate=10
模型软删除
要使用软删除,使用softDelete选项,
php artisan gabo.generator:api Post --softDelete
从文件中获取字段
如果您想从文件传递字段,则可以创建字段json文件,并通过命令行传递它。以下是一个示例 fields.json
您必须在命令中传递选项 --fieldsFile=绝对文件路径或从基本目录的路径
。例如:
php artisan gabo.generator:scaffold_api Post --fieldsFile="/Users/Gabo/laravel-api-generator-for-lteTemplate/fields.json"
php artisan gabo.generator:scaffold_api Post --fieldsFile="fields.json"
自定义表名
您也可以指定自己的自定义表名,
php artisan gabo.generator:api Post --tableName=custom_table_name
跳过迁移
您也可以跳过迁移生成,
php artisan gabo.generator:api Post --skipMigration
记住令牌
要在迁移文件中生成rememberToken字段,
php artisan gabo.generator:api Post --rememberToken
从现有表中生成生成器
要使用现有表与生成器一起使用,您可以指定--fromTable
选项。--tableName
选项是必需的,您需要指定表名。
请确保您已安装doctrine/dbal
包。
限制: 目前它尚未完全工作(工作正在进行中)。它不会创建迁移文件。您需要调整生成文件中的一些内容,如时间戳、主键等。
php artisan gabo.generator:api Post --fromTable --tableName=posts
致谢
此API生成器受到Mitul Golakiya的启发。并由Gabriel Jaime修改,以适应https://github.com/gabrieljaime/laravel-admin-master中的环境。
欢迎提交错误和分叉:)