I've just released version 2.0 of Crell/Tukio! Available now from your favorite Packagist.org. Tukio is a feature-complete, easy to use, robust Event Dispatcher for PHP, following PSR-14. It began life as the PSR-14 reference implementation.
Tukio 2.0 is almost a rewrite, given the amount of cleanup that was done. But the final result is a library that is vastly more robust and vastly easier to use than version 1, while still producing near-instant listener lookups.
Some of the major improvements include:
- It now uses Topological sorting internally, rather than priority sorting. Both are still supported, but the internal representation has changed. The main benefits are cycle detection and support for multiple before/after rules per listener.
- The API has been greatly simplified, thanks to PHP 8 and named arguments. It's now down to essentially two methods --
listener()
andlistenerService()
, both of which should be used with named arguments for maximum effect. The old API methods are still supported, but deprecated to allow users to migrate to the new API. - Tukio can now auto-derive more information about your listeners, making registration even easier.
- It now uses the powerful Crell/AttributeUtils library for handling attribute-based registration. That greatly simplified a lot of code while making several new features easy.
- Attributes are now supported on the class level, not just method. That makes building single-method listener services trivially easy.
Continue reading this post on PeakD.