neighborhoods / kojo-worker-decorator-component
一组满足常用代码的 Kojo Worker Decorators。
Requires
- php: ^7.3|^8
- ext-pdo: *
- neighborhoods/dependency-injection-container-builder: ^1.0
- neighborhoods/exception-component: ^1.0.5
- neighborhoods/kojo: ^5
- neighborhoods/throwable-diagnostic-component: ^4
Requires (Dev)
- ext-json: *
- neighborhoods/buphalo: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^0.12.62
- phpstan/phpstan-phpunit: ^0.12.17
- phpunit/phpunit: ^9.2
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-04 13:44:15 UTC
README
为典型 Kōjō Worker 提供一组有用的装饰器。
安装
通过 Composer
$ composer require neighborhoods/kojo-worker-decorator-component
版本控制
不要混淆 packagist 上的发布版本,例如 4.0.0,与该包内组件的版本,例如 ExceptionHandlingV1。一个发布版本可能包含同一组件的多个版本。
您的代码可能使用组件的旧版本,而其他部分使用最新版本。
升级
要从版本 3 升级到版本 4,请遵循 升级指南。
使用方法
组件分为两类
- Worker 装饰
- Worker 装饰器
Worker 装饰 是关于装饰 worker 的。Worker 装饰主要包含接口。它决定了 worker 的外观,装饰器的外观,如何定义要使用的装饰器堆栈,如何获取一个可用的装饰 worker。
可能存在多个版本的 worker 装饰,例如 WorkerDecorationV1 和 WorkerDecorationV2。
Worker 装饰器 为装饰的 worker 提供特定功能。可以在同一个 worker 上使用多个装饰器。
Worker 装饰器是为特定版本的 Worker 装饰制作的。所有与 WorkerDecorationV1 兼容的装饰器都放置在 src/WorkerDecorationV1Decorators
文件夹中。
有不同的功能,例如异常处理,崩溃阈值。有一组建议的预定义装饰器可用于每个 worker。有关详细信息,请查看特定的 Worker 装饰版本。
同一功能可能有多个版本,例如 ExceptionHandlingV1,ExceptionHandlingV2。如果可能,请使用最新版本。
您可以实现自己的装饰器。
有关使用详情和预定义装饰器的列表,请参阅相应的 Worker 装饰版本。
Buphalo 集成
Buphalo 为 worker、自定义装饰器以及其附带文件提供了模板。有关更多详细信息,请阅读特定版本的文档。
先决条件
Buphalo 模板提供在一个自定义模板树中。Buphalo 在版本 1.1 中添加了对多个模板树的支持。请确保您已安装 Buphalo 版本 1.1 或更高版本。
您可能在项目的 bin
文件夹中有一个脚本正在运行 vendor/bin/buphalo
,并带有所有必要的环境变量。编辑模板树目录路径的环境变量,包括包含在此包中的模板树。环境变量定义可能如下所示。
Neighborhoods_Buphalo_V1_TemplateTree_Map_Builder_FactoryInterface__TemplateTreeDirectoryPaths=default:$PWD/vendor/neighborhoods/buphalo/template-tree/V1,kwdc:$PWD/vendor/neighborhoods/kojo-worker-decorator-component/template-tree/BuphaloV1
上面的导出假设您没有其他自定义模板树。
示例
在 Fitness 项目中可以找到应用程序示例。