chatway / laravel-crud-generator
Laravel crud generator
Requires
- php: >=8.0
- laravel/framework: >=8
README
该项目旨在快速生成网站后台文件。根据指定的表创建以下文件:Model、Repository、Service、Controller、view
代码示例将在以后发布
基本使用
php artisan generate tableName {{path}} {{--enum}} {{--scenario}} {{path}} - 需要存放文件的 Domain 文件夹路径(enum)- 生成 enum 文件(force)- 默认为 false,为 true 时替换已创建的文件(scenario=default)- 场景。default - 生成所有文件,admin - 生成后台文件,api - 生成 API 文件(action=generate)- 动作。generate - 生成文件,rollback - 删除生成的文件
从代码中调用命令
Artisan::call('gen:all', [ 'table' => 'event', '--enum' => 'type-sport,home,work;status-active,inactive,deleted' ]);
可选的配置文件 .env 中的通用设置
GENERATOR_BASE_NS= - 存放 Entities、Enum、Repository、Service 的基本 namespace GENERATOR_HTTP_NS= - 存放 Controller 的基本 namespace
生成文件的文件夹 GENERATOR_MODEL_FOLDER_NAME= GENERATOR_REPOSITORY_FOLDER_NAME= GENERATOR_ENUM_FOLDER_NAME= GENERATOR_SERVICE_FOLDER_NAME=
文件后缀 GENERATOR_REPOSITORY_SUFFIX= GENERATOR_CONTROLLER_SUFFIX= GENERATOR_SERVICE_SUFFIX= GENERATOR_ENUM_STATUS_SUFFIX= GENERATOR_VIEW_FILE_SUFFIX=
父组件 GENERATOR_MODEL_EXTENDS= GENERATOR_ADMIN_CONTROLLER_EXTENDS= GENERATOR_API_CONTROLLER_EXTENDS= GENERATOR_SERVICE_EXTENDS= GENERATOR_SERVICE_IMPLEMENTS= GENERATOR_REPOSITORY_EXTENDS= GENERATOR_REPOSITORY_IMPLEMENTS=
标准 enum 类 GENERATOR_DEFAULT_STATUS_ENUM=App\Domain\Application\Admin\Enums\DefaultStatusEnum
使用自己的文件进行生成时,需要在主文件 .gitignore 中添加文件夹:/resources/views/generator
示例
php artisan generate news Context --enum=type-sport,home,work;status-active,inactive,deleted --scenario=rollback --force
快速生成迁移
从版本 1.2.0 开始引入快速迁移功能
示例:php artisan migrate:new create_news_table --fields=title:string:notNull,status 将创建以下内容
默认使用文件 fieldTemplates.json。您可以使用自己的模板集合,只需将文件复制到 storage/app/fieldTemplates.json 即可
也可以使用预定义的场景:php artisan migrate:new create_news_table --scenario=news
然后迁移数据将从 news.json 文件中获取。您也可以将场景复制到 storage/app/ 目录中并编写自己的场景。