saomainek/laravel-api-generator

Laravel API/Scaffold/CRUD 生成器,只需一条命令即可生成控制器、仓库、模型、迁移和 routes.php 更新。

安装: 150

依赖者: 0

建议者: 0

安全: 0

星星: 3

观察者: 2

分支: 144

语言:JavaScript

v1.3.3 2015-05-23 19:08 UTC

README

Latest Stable Version Total Downloads Monthly Downloads Daily Downloads Latest Unstable Version License

版本兼容性

我喜欢创建 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 就在几秒钟内准备好了。

以下是完整文档。

升级指南.

文档正在制作中...

文档

  1. 安装
  2. 配置
  3. 发布 & 初始化
  4. 生成器
  5. 支持的字段类型
  6. 自定义
    1. 基础控制器
    2. 自定义模板
    3. Dingo API 集成
  7. 选项
    1. 分页记录
    2. 模型软删除
    3. 从文件获取字段
    4. 自定义表名
    5. 跳过迁移
    6. 记住令牌
  8. 从现有表生成生成器

注意

确保安装了 auth "make:auth"

安装

  1. 将此包添加到您的 composer.json

     "require": {
         "laracasts/flash": "~1.3",
         "laravelcollective/html": "5.2.*",
         "bosnadev/repositories": "dev-master",
         "sawmainek/laravel-api-generator": "dev-master"
     }
    
  2. 运行 composer update

     composer update
    
  3. 将 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

发布 & 初始化

主要,我们需要做三件基本的事情来开始。

  1. 发布一些常见视图,如 errors.blade.phppaginate.blade.php

  2. 发布包含所有API路由的 api_routes.php

  3. 为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
  • email
  • file
  • checkbox
  • radio:male,female,option3,option4
  • number
  • date
  • select:India,USA

自定义

基础控制器

如果您想使用自己的基础控制器或想扩展/修改默认的 AppBaseController,则可以有以下选项

  1. 如果您想使用另一个控制器(推荐扩展 AppBaseController 以创建新控制器)作为基础控制器,则修改 config/generator.php 中的 base_controller

  2. 如果您想修改 AppBaseController,则:

    1. 在您的控制器路径中发布 AppBaseController

      php artisan mitul.generator:publish --baseController

    2. 修改 AppBaseController.php 的内容,并在 config/generator.php 中将其设置为 base_controller

自定义模板

要使用您自己的自定义模板,

  1. 将模板发布到 /resources/api-generator-templates

     php artisan mitul.generator:publish --templates
    
  2. 只保留您想更改的模板。删除您不打算更改的模板。

选项

分页记录

要分页记录,您可以指定分页选项,例如:

    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 创建。

欢迎提交错误和分支:)