thomasderooij / cqrs
基本的CQRS类设置。
1.0.0
2022-10-18 11:20 UTC
Requires
- php: ^8
This package is auto-updated.
Last update: 2024-09-18 19:38:13 UTC
README
安装
使用以下命令通过composer安装此包
composer require thomasderooij/cqrs
文档
这是一个类集合,用于在命令(或执行操作的数据)和查询(获取信息的数据)之间创建清晰的区分。
设置很简单。创建一个命令或查询。您的构造函数应该接收完成任务所需的数据。任何依赖项也应在此处实例化。我个人使用单例,但你可以按自己的方式实现。
您的命令和查询有3个受保护函数;
- Run(实际代码)
- isSatisfied(一个检查是否可以执行代码的函数)
- Exception(如果isSatisfied返回false将抛出的异常)
canCommand和canQuery特性设置了一个类来运行您的命令和查询。
快速示例:您有一个名为StoreFileCommand的命令。它将请求中的文件位置作为构造函数参数。
- run函数实际上将文件移动到专用目录,并创建一个数据库条目,以便您以后可以获取文件。
- isSatisfied函数检查文件扩展名、大小和其他可能对文件设置的限制。
- Exception函数返回一个新的FileTooBig异常,在文件太大时抛出。
您的控制器说 $this->execute(new StoreFileCommand($fileLocation, $targetLocation)); 然后。文件已存储。干净、可重用。很棒。
这是一个基本的包,没有实现数据库事务。因此,当您没有创建自己的Transactions特性实现时,它将抛出异常。所以,这并不是现成的解决方案。祝你好运,玩得开心。