vitrin-infrastructure / contracts
所有应在项目中使用的核心合约(接口),以保持一致性
0.0.4
2024-04-21 15:58 UTC
Requires
README
这是一个非常简单但非常重要的包,它包含了很多接口文件,如我们的合约。🔥
🗒️ 描述
此包提供了一套全面的接口(合约),定义了应用程序中各种组件的核心功能和标准。它作为确保跨所有项目实现领域实体、服务、存储库、值对象和测试用例一致性的基础。
🔍 概述
合约包包括以下接口:
- 命令和查询:定义CQRS模式的标准操作。
- 实体:标准化核心实体行为。
- 存储库:概述数据访问和处理方法。
- 服务:定义业务逻辑和服务层交互。
- 值对象:确保不可变性和领域特定数据完整性。
- 测试合约:提供单元测试和功能测试的结构。
🏁 安装
要安装生成器,首先需要在您的 composer.json 文件中定义此存储库
// composer.json
...
"repositories": [
{
"type": "vcs",
"url": "https://gitlab.com/vitrin-solutions/infrastructure/laravel/contracts.git"
}
],
"require": {
//
}
...
然后,在您的 Laravel 项目中运行以下命令
composer require vitrin-infrastructure/contracts
🤟 使用
在您的应用程序中实现这些合约,以强制执行一致性和遵守领域驱动设计原则。例如,要创建一个新实体
namespace App\Domain\Entities;
use Vitrin\Infrastructure\Contracts\Entity\EntityContract;
use Vitrin\Infrastructure\Types\ID;
class UserEntity implements EntityContract {
// Implementation details...
}
📚 文档
这是所有可用合约的列表
合约 | 描述 |
---|---|
Vitrin\Infrastructure\Contracts\Command\Create\CreateCommandContract | 定义创建实体的操作,包括授权检查。 |
Vitrin\Infrastructure\Contracts\Command\Delete\DeleteCommandContract | 概述实体的删除操作,包括获取标识符和授权。 |
Vitrin\Infrastructure\Contracts\Command\Update\UpdateCommandContract | 指定更新操作,包括数据转换到实体和授权。 |
Vitrin\Infrastructure\Contracts\Entity\EntityContract | 定义基本实体行为,如获取标识符和数组转换。 |
Vitrin\Infrastructure\Contracts\Facade\FacadeContract | 标记接口,用于简化对底层逻辑的静态访问。 |
Vitrin\Infrastructure\Contracts\Filter\FilterContract | 标准化应用程序中的数据过滤,以进行动态查询修改。 |
Vitrin\Infrastructure\Contracts\Model\ModelContract | 使用如动态查询过滤等方法增强模型功能。 |
Vitrin\Infrastructure\Contracts\Query\Find\FindQueryContract | 定义查找查询的合约,包括标识符获取和授权。 |
Vitrin\Infrastructure\Contracts\Query\List\ListQueryContract | 概述列表查询的结构,包括分页细节和授权。 |
Vitrin\Infrastructure\Contracts\Repository\RepositoryContract | 指定实体数据存储的常见 CRUD 操作和实用程序。 |
Vitrin\Infrastructure\Contracts\Service\ServiceContract | 服务层类的基合约,定义业务逻辑和服务交互。 |
Vitrin\Infrastructure\Contracts\ServiceProvider\ServiceProviderContract | 定义服务提供者的合约,标准化服务注册。 |
Vitrin\Infrastructure\Contracts\Tests\Commands\TestCreateCommandContract | 用于测试在不同用户权限下创建命令功能的合约。 |
Vitrin\Infrastructure\Contracts\Tests\Commands\TestDeleteCommandContract | 定义删除命令功能的测试结构。 |
Vitrin\Infrastructure\Contracts\Tests\Commands\TestUpdateCommandContract | 用于测试更新命令操作,包括处理无效数据的合约。 |
Vitrin\Infrastructure\Contracts\Tests\Queries\TestFindQueryContract | 概述查找查询操作的测试策略,包括授权检查。 |
Vitrin\Infrastructure\Contracts\Tests\Queries\TestListQueryContract | 定义测试列表查询功能和数据完整性的合约。 |
Vitrin\Infrastructure\Contracts\ValueObject\ValueObjectContract | 值对象标记接口,确保不可变性和特定领域的数据完整性。 |
🪄 前进到下一个层次
创建所有文件并实现正确的合同是一项非常无聊且耗时的工作,与其这样做,您可以使用 Vitrin Solutions Generator 自动生成您需要的所有文件 🔥。\ 生成器文档链接
👨💻👩💻 贡献
欢迎为合同包做出贡献!请确保您的拉取请求有良好的文档,并遵循现有的编码标准。
👨💻 作者
此包由Amir Khadangi积极开发。
🪪 许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。