基本的CQRS类设置。

安装: 23

依赖项: 1

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 0

开放问题: 0

类型:项目

1.0.0 2022-10-18 11:20 UTC

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特性实现时,它将抛出异常。所以,这并不是现成的解决方案。祝你好运,玩得开心。