linkorb / data-router
DataRouter: library for routing arbitrary data based on hierarchical rules
Requires
- php: >=7.2
- psr/log: ^1.0.1
- symfony/expression-language: ^5.3
Requires (Dev)
- monolog/monolog: ^2.3
- symfony/yaml: ^5.3
This package is not auto-updated.
Last update: 2024-11-21 03:50:28 UTC
README
Simple library to route data based on nested routing rules
Use-cases:
- Advanced alert/support routing based on schedules, escalation, priorities, etc
- Q/A routing
- Self-service
- On-call scheduling
Concepts
Using the DataRouter library you create a nested tree structure of Routes.
Every Route has a name, expression (for matching), and optionally child routes and output data.
The expressions are evaluated hierarchically using the Symfony Expression Language Component allowing for arbitrarily complex routing rules.
You can pass in your own "ExpressionLanguage" instance to support your own custom functions to enrich your expressions.
Example
Check example/example.php
for a simple example for a common usage scenario:
- Loading routes from a YAML config file (included
test-routes.yaml
) - Instantiating a custom ExpressionLanguage instance with a custom method
- Instantiating a Router
- Routing / output
- Logging / debugging
php example/example.php
License
MIT. Please refer to the license file for details.
Brought to you by the LinkORB Engineering team
Check out our other projects at linkorb.com/engineering.
Btw, we're hiring!