epoc-tech / gerador-crud
用于创建符合 action/usecase/repository 架构标准的 CRUD 软件包。
Requires
- php: ^8.0.2
- php-school/cli-menu: dev-master
Requires (Dev)
- fakerphp/faker: 2.x-dev
README
🚧 组件持续进化。 🚧
最初,该组件仅遵守 multiloja_base
数据库。
安装 🎯
要安装 OZ 结构生成器,您首先需要在开发环境中安装该软件包到您的 composer,因为只会在开发中使用,所以不会在其他地方使用。
composer-require oz-tech/gerador-crud --dev
安装完成后,输入命令 php artisan
,将会返回一个命令列表,其中包含由 composer 安装的 2 个命令。
- oz:gerar-crud
- oz-gerar-estrutura
生成 crud
生成 crud 系统有两种方式:一种是只输入 php artisan oz:gerar-crud
并按照步骤操作,或者直接输入完整的命令行。
php artisan oz:gerar-crud 模块 表名 主键 middleware
模块:您的 crud 模块名称,例如 产品、公司、账户,系统将使用模块名称创建所有文件。
表:您数据库中表的名称,用于进行搜索并将字段拉入 Models 文件。
主键:由于并非所有数据库都以 id
作为主键,因此您可以在此处输入自定义值。
中间件:如果您的路由受到特定中间件的保护,则在此处留空。
理解架构
Actions
Actions 负责路由调用中的单一职责,即每个 action 只存在一个方法,每个方法只有一个职责 | 文件 | 描述 | 动词 | | --- | --- | --- | | Cadastrar{Model}Action | 基于创建的 Model,使用已填充的 fillables、表名和主键进行模块项的登记 | POST | | Visualizar{Model}Action | 通过查询字符串传递 id 来查看已登记的单一项 | GET | | Listar{Model}Action | 使用默认分页列出所有登记项 | GET | | Editar{Model}Action | 通过查询字符串传递 id 和 body 中的字段来编辑项 | PUT | | Excluir{Model}Action | 通过查询字符串传递 id 来删除项 | DELETE |
Requests
Requests 将自动生成,并包含表中的所有字段,作为 required
以便进行验证的定制。
UseCases
每个 Action 都有一个相关的 UseCase,它实现了一个 UseInterface 抽象类,它仅启用一个公共方法,我们称之为 handle
。在那里应该执行所有业务规则,可以仅使用私有方法来帮助处理和精简方法。
Repository
每个模块都有自己的 repository,它分为一个抽象类和一个具体类,实现了所有方法。
CustomRoutes
为每个生成的模块,我们分别在文件夹中创建其路由,始终使用模块前缀以及每个 action 的路径,并将其自动放入 routes/api.php
文件中,因为这些路由仅用于 API。
Providers
由于我们在使用接口,因此需要在我们的项目中注册它们,以便我们可以使用注入到组件中的抽象类。为此,我们在 Providers 文件夹中创建了 CustomProvider
,它包含模块的 ServiceProvider 以及一个用于加载这些 providers 的类。这个类应该最后包含在 config/app.php
文件中,如下所示:App\Providers\CustomProvider\LoadModulesProvider::class
,这样您的系统就已经准备好处理将来出现的所有 providers。
特性(Traits)
我们还提供了一个自定义的 api response 特性,这也是自动生成的。