码大汉/insular

可扩展软件架构。

dev-main 2022-11-04 11:14 UTC

This package is auto-updated.

Last update: 2024-09-04 15:02:21 UTC


README

Insular 是一种用于以现代、清晰和模块化的方式构建可扩展 Laravel 项目的软件架构。

Insular 是拉丁语,意为 "世界观狭隘。" 这也是模块应该如何组织的方式。 🔥🔥

目录

安装

您可以通过 composer 安装此包。

composer require MagedAhmad/insular

雪花

我们使用雪花作为 ID,默认情况下,使用自定义命令创建的新模型将使用 Snowflake 特性。您可以在这里了解更多关于雪花的信息:[Snowflake](https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Fitnext.io%2Fhow-to-use-twitter-snowflake-ids-for-your-database-primary-keys-in-laravel-763a98e78466)。

可用命令

模块

您从构建应用程序的主块开始,即一个 模块

模块就像微型 Laravel 应用程序,其中每个模块都包含构建此模块所需的一切。

php artisan create:module $name 

示例

php artisan create:module Auth

这将创建 Modules\Auth 中的模块结构

功能

当您有多个与某些操作相关的操作,并且您会多次重复这些操作时,可以使用功能。您可以创建一个功能并在以后重用它。

php artisan create:feature $name $module 

示例

php artisan create:feature LoginUserFeature Auth

这将创建 Modules\Auth\Features\LoginUserFeature 中的功能

操作

操作是主要构建块,其中大部分逻辑都会放入其中,它可能包含多个作业。

php artisan create:operation $name $module

示例

php artisan create:operation LoginUserOperation Auth

这将创建 Modules\Auth\Operations\LoginUserOperation 中的文件

作业

作业是我们系统中最小的单元。您可以使用它来避免重复小段代码。只有当您确定您会多次使用它时,才应使用它,否则操作足以在其中包含逻辑。

php artisan create:job $name $module

示例

php artisan create:job LoginUserJob Auth

这将创建 Modules\Auth\Jobs\LoginUserJob 中的文件

控制器

php artisan create:controller $name $module

示例

php artisan create:controller LoginController Auth

这将创建 Modules\Auth\Http\Controllers\LoginController 中的文件

迁移

您只需写入迁移名称,例如 usersproductscategories,无需键入 create_users_table

php artisan create:migration $name $module

示例

php artisan create:migration users Auth

这将创建 Modules\Auth\database\migrations\users 中的文件

模型

模型默认使用 Snowflake 特性

php artisan create:model $name $module

示例

php artisan create:model User Auth

这将创建 Modules\Auth\Models\User 中的文件

资源

资源可用于在发送响应之前映射数据。

php artisan create:resource $name $module

示例

php artisan create:resource UserResource Auth

这将创建 Modules\Auth\Http\Controllers\Resource\UserResource 中的文件

请求

可用于验证传入的请求数据。

php artisan create:request $name $module

示例

php artisan create:request UserRequest Auth

这将创建 Modules\Auth\Http\Controllers\Requests\UserRequest 中的文件

类型

类型可用于在类之间内部处理数据

php artisan create:type $name $module

示例

php artisan create:type UserData Auth

这将创建 Modules\Auth\Types\UserData 中的文件

异常

php artisan create:exception $name $module

示例

php artisan create:exception UserNotFoundException Auth

这将创建 Modules\Auth\Exceptions\UserNotFoundException 中的文件

测试

vendor/bin/pest 

待办事项

1- 为所有请求工作全局响应。2- 提供测试/查看 API 的简单方法。3- 在 Pest 和 phpunit 之间切换

更新日志

有关最近更改的更多信息,请参阅更新日志

贡献

有关详细信息,请参阅贡献

鸣谢

许可证

MIT许可证(MIT)。更多信息请参阅许可文件