neighborhoods / kojo-worker-decorator-component
A set of Kojo Worker Decorators that fulfill often repeated code.
Installs: 3 758
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 4
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-11-04 14:00:41 UTC
README
A set of useful decorators for a typical Kōjō Worker.
Install
Via Composer
$ composer require neighborhoods/kojo-worker-decorator-component
Versioning
Don't confuse releases on packagist, e.g. 4.0.0, with versions of components contained within this package, e.g. ExceptionHandlingV1. One release may contain multiple versions of the same component.
Parts of your code may use older versions of components, while others use the latest.
Upgrade
For upgrading from release 3 to release 4 follow the Upgrade Guide.
Usage
Components fall into one of two categories
- Worker Decoration
- Worker Decorator
The Worker Decoration is about decorating the worker. The Worker Decoration mostly contains interfaces. It determines how the worker looks like, how the decorators look like, how to define the stack of decorators to be used, how to obtain a decorated worker ready for usage.
There might be multiple versions of worker decoration, e.g. WorkerDecorationV1 and WorkerDecorationV2.
A Worker Decorator provides a specific functionality to the decorated worker. Multiple decorators can be used on the same worker.
A worker decorator is made for a specific version of Worker Decoration. All decorators compatible with WorkerDecorationV1 are placed in the src/WorkerDecorationV1Decorators
folder.
There are different functionalities, e.g. exception handling, crash threshold. There is a set of recommended predefined decorators to be used on each worker. Check the specific Worker Decoration version for more details.
The same functionality may have multiple versions, e.g. ExceptionHandlingV1, ExceptionHandlingV2. Use the latest version if possible.
You can implement your own decorator.
For usage details and list of predefined decorators please refer to the corresponding Worker Decoration version.
Buphalo integration
Buphalo templates are available for workers and custom decorators as well as their accompanying files. Read the specific version documentation for more details.
Prerequisites
The Buphalo templates are provided in a custom template tree. Support for multiple template trees has been added to Buphalo in version 1.1. Ensure you have Buphalo version 1.1 or above installed.
You probably have a script in your project's bin
folder running vendor/bin/buphalo
with all the needed environment variables. Edit the environment variable for template tree directory paths to include the template tree contained in this package. The environment variable definition might be as below.
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
The export above assumes that you have no other custom template trees.
Examples
Application examples are available in the Fitness project.