webravolab/layers

1.1.1 2019-07-06 17:53 UTC

README

Laravel六边形架构 - 域驱动设计抽象层

包含

  • 使用RabbitMQ或数据库的通用队列处理程序
  • 命令总线(使用通用队列处理程序)
    • 可从您的命令扩展的通用命令
    • 命令总线调度器和远程命令调度器
  • 事件接收器(使用通用队列处理程序)
    • 可从您的事件扩展的通用事件
    • 事件总线调度器和远程事件调度器
  • StackDriver日志(扩展Monolog)
  • 空日志器(用于测试)
  • Eloquent持久层
  • 带有通过数据库设置表覆盖的通用配置助手
  • 使用webravolab/cdn包的Cdn图像服务
  • 文件系统服务
  • 可由您的实体扩展的抽象实体
  • 抽象值对象和一些简单实现(url, guid, filename)

安装

composer require webravolab/layers --no-dev

要执行测试,省略--no-dev以安装开发依赖项。

该包与Laravel >= 5兼容,目前不使用任何真实版本依赖。

配置

RabbitMQ队列处理程序

要使用RabbitMQService,您必须有一个运行的RabbitMQ服务器,并复制以下文件

config/rabbitmq.php复制到laravel /config目录,并自定义配置以访问您的RabbitMQ实例。

数据库队列处理程序

DBQueueService是RabbitMQ的100%基于数据库的替代品。它需要3个表才能工作

jobs_queue
jobs
events

您可以在tests/database/migrations下找到构建这些表的Laravel迁移。只需将DB连接从testbench替换为您自己的数据库名称即可。

测试

提供了PhpUnit测试套件。它创建了一个基于内存的SqLite数据库实例来创建所需的表并执行测试。它使用orchestra/testbench包来模拟完整的Laravel环境。

要测试与Google Cloud Storage的CdnService,您必须将您的服务帐户json文件复制到/test文件夹(google-credentials.json)。

使用方法

要了解通用队列处理程序的行为,请参阅包含的测试以获取使用示例。

要了解队列策略,请参阅RabbitMQ文档。

注意

Stackdriver日志实现需要google/cloud-logging库及其依赖项。

它还需要在项目根目录中加载服务帐户json密钥。有关详细信息,请参阅Google Cloud身份验证文档。

配置助手

Webravo\Infrastructure\Library\Configuration是一个帮助程序,用于以标准方式访问环境和配置变量,允许通过名为settings的数据库表覆盖变量。

您可以在tests/database/migrations下找到构建设置表的Laravel迁移。

要启用设置覆盖,您必须设置环境变量SETTINGS_DB_CONNECTION,其值为设置表的数据库连接名称。