PHPackages                             neighborhoods/kojo-worker-decorator-component - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. neighborhoods/kojo-worker-decorator-component

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

neighborhoods/kojo-worker-decorator-component
=============================================

A set of Kojo Worker Decorators that fulfill often repeated code.

4.0.2(4y ago)03.8k[1 issues](https://github.com/neighborhoods/KojoWorkerDecoratorComponent/issues)[1 PRs](https://github.com/neighborhoods/KojoWorkerDecoratorComponent/pulls)proprietaryPHPPHP ^7.3|^8

Since Dec 16Pushed 4y ago2 watchersCompare

[ Source](https://github.com/neighborhoods/KojoWorkerDecoratorComponent)[ Packagist](https://packagist.org/packages/neighborhoods/kojo-worker-decorator-component)[ RSS](/packages/neighborhoods-kojo-worker-decorator-component/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (11)Versions (15)Used By (0)

Kōjō Worker Decorators
======================

[](#kōjō-worker-decorators)

A set of useful decorators for a typical [Kōjō](https://github.com/neighborhoods/kojo) Worker.

Install
-------

[](#install)

Via Composer

```
$ composer require neighborhoods/kojo-worker-decorator-component
```

### Versioning

[](#versioning)

Don't confuse releases on [packagist](https://packagist.org/packages/neighborhoods/kojo-worker-decorator-component), 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

[](#upgrade)

For upgrading from release 3 to release 4 follow the [Upgrade Guide](docs/UpgradeGuide.md).

Usage
-----

[](#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.

- [WorkerDecorationV1](src/WorkerDecorationV1/README.md)

Buphalo integration
-------------------

[](#buphalo-integration)

[Buphalo](https://github.com/neighborhoods/Buphalo) templates are available for workers and custom decorators as well as their accompanying files. Read the specific version documentation for more details.

### Prerequisites

[](#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
--------

[](#examples)

Application examples are available in the [Fitness](https://github.com/neighborhoods/KojoWorkerDecoratorComponentFitness) project.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~27 days

Recently: every ~44 days

Total

12

Last Release

1651d ago

Major Versions

0.1.0-alpha → 1.0.02021-01-13

1.0.3 → 2.0.02021-04-06

2.0.0-alpha → 3.0.02021-05-10

3.0.0 → 4.0.02021-06-22

PHP version history (2 changes)0.1.0-alphaPHP ^7.3

4.0.1PHP ^7.3|^8

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8584765?v=4)[neighborhoods.com](/maintainers/neighborhoods)[@neighborhoods](https://github.com/neighborhoods)

---

Top Contributors

[![Firtzberg](https://avatars.githubusercontent.com/u/8490119?v=4)](https://github.com/Firtzberg "Firtzberg (124 commits)")[![rhift](https://avatars.githubusercontent.com/u/1008958?v=4)](https://github.com/rhift "rhift (2 commits)")[![nico-spada-virtasant](https://avatars.githubusercontent.com/u/68550127?v=4)](https://github.com/nico-spada-virtasant "nico-spada-virtasant (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/neighborhoods-kojo-worker-decorator-component/health.svg)

```
[![Health](https://phpackages.com/badges/neighborhoods-kojo-worker-decorator-component/health.svg)](https://phpackages.com/packages/neighborhoods-kojo-worker-decorator-component)
```

###  Alternatives

[fisharebest/webtrees

webtrees online genealogy

73710.5k13](/packages/fisharebest-webtrees)[recca0120/twzipcode

twzipcode

13729.1k](/packages/recca0120-twzipcode)[mdwheele/swotphp

Identify email addresses or domains names that belong to colleges or universities.

6847.8k1](/packages/mdwheele-swotphp)[symbiote/silverstripe-dynamiclists

A Module that allows users to create custom data lists. These lists can then be used in a form control (specified via code by a developer) or within a user defined form to be able to define controlled vocabularies managed in a central location that might be used across several forms.

109.5k1](/packages/symbiote-silverstripe-dynamiclists)[pure_mashiro/magento2-bundlejs

Advanced JavaScript Bundling

111.5k](/packages/pure-mashiro-magento2-bundlejs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
