oz-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 结构生成器,您首先需要在 dev 的 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 模块 表名 chave_primaria 中间件
模块:您的 CRUD 模块的名称,例如产品、公司、账户,系统将创建所有以模块名称命名的文件。
表:您的数据库中表的名称,用于搜索并从 Models 文件中获取字段。
主键:由于并非所有数据库都以 id
作为主键,因此您在此可以输入自定义值。
中间件:如果您的路由被某个特定中间件保护,则留空。
了解架构
操作
操作负责在路由调用中执行单一职责,也就是说每个操作只有一个方法,每个操作只有一个责任 |文件|描述|动词| | --- | --- | --- | | Cadastrar{Model}Action | 根据已创建的 Model 预设填充值、表名和主键进行模块项的登记 | POST | | Visualizar{Model}Action | 通过在查询字符串中传递 id 显示已登记的单一项 | GET | | Listar{Model}Action | 使用标准分页列出所有登记项 | GET | | Editar{Model}Action | 通过通过查询字符串传递 id 和通过 body 传递的字段编辑项 | PUT | | Excluir{Model}Action | 通过查询字符串传递 id 删除项 | DELETE |
请求
请求会自动生成,并包含表的所有字段,作为 required
用于自定义验证。
用例
每个操作都有一个相关的用例,该用例实现了一个 UseInterface 抽象类,它仅允许一个公共方法,我们称之为 handle
。在其中应执行所有业务规则,可以仅使用私有方法来辅助处理和最小化方法。
存储库
每个模块都有自己的存储库,它分为一个抽象类和一个具体类,实现了所有方法。
自定义路由
对于每个生成的模块,我们分别在一个文件夹中创建其路由,始终使用模块的前缀,为每个操作的路由指定路径,并自动将这些路由放入 routes/api.php
文件中,因为这些路由仅用于 API。
提供者
由于我们在使用接口,我们需要在我们的项目中注册它们,以便我们可以使用注入到我们组件中的抽象类。为此,我们还在“Providers”文件夹内创建了CustomProvider
,它包含模块的ServiceProvider以及一个用于加载这些提供者的类。这个类应该在config/app.php
文件的最后包含,以下提供者:App\Providers\CustomProvider\LoadModulesProvider::class
。这样做后,您的系统将能够处理未来出现的所有提供者。
特质
我们还提供了一种自定义API响应特质,这也是自动生成的。