hoathis/symfony-ruler-bundle
Symfony bundle that integrates Hoa\Ruler, a lightweight business rules engine, into Symfony applications. Define and evaluate dynamic rules with service configuration and dependency injection support for cleaner, configurable business logic.
user.age > 18 and cart.total > 50) directly supports decisions about whether pricing, eligibility, discounting, and routing logic should live in code or in data that ops can edit. That's a real roadmap question with time-to-market implications.Consider the pattern (not the dependency) when:
if chain.Look elsewhere — and you almost certainly should — when:
NOASSERTION — no declared, vetted license. Legal/compliance cannot approve that for a commercial product without manual investigation.Viable alternatives to evaluate instead: Symfony ExpressionLanguage (if Symfony), a small in-house predicate evaluator over a JSON schema, RulerZ-style filtering libraries, or Laravel's native validation/rule objects for simpler cases.
To executives: We evaluated a rules-engine approach for business-configurable logic. The concept is valuable — it lets ops change eligibility and pricing thresholds without a deploy, cutting time-to-market from weeks to hours and reducing engineering toil. The package itself is not adoptable: it is abandoned (last release 2016), tied to an obsolete framework version, has an unclear license, and has no user base to inherit fixes from. Recommendation: fund a short spike (1–2 sprints) to build a thin, owned rules layer on a maintained expression library, rather than take on an unmaintained dependency and its liability.
To engineering: Treat hoathis/symfony-ruler-bundle as prior art only. Do not vendor it. If we pursue a rules layer, we own it: a parser/evaluator over a whitelisted context, deterministic and side-effect-free, with golden-file tests, rule versioning, and an audit log of evaluated inputs and outcomes. Budget for the DSL surface area — that, not the evaluator, is where the cost lives.
Bottom line: Pattern: yes. Package: no. Score it as research input, not a build dependency.
How can I help you explore Laravel packages today?