intaro/rule-engine-bundle
A Symfony bundle that adds a configurable rule engine to your app: define conditions and actions, evaluate them against domain objects, and run business logic declaratively. Extendable, expression-driven, and easy to wire into existing services.
ExpressionLanguage — and is most useful as a reference design, not as a dependency.if statements).Consider it only when all of the following hold:
EventDispatcher + ExpressionLanguage wiring is the entire value), not Laravel. For Laravel, the bundle is inert; you would need to write an adapter anyway.intaro/rule-engine library rather than the bundle — that's the reusable piece.Look elsewhere (or just build it) when:
symfony/expression-language directly plus a small service provider and a Rule model — roughly a day of work, fully maintained, no bundle baggage.ExpressionLanguage's evaluation/caching API and the symfony/event-dispatcher-contracts interfaces have both moved since.ExpressionLanguage is not a sandbox; evaluating untrusted input is an injection vector. Any multi-tenant or admin-editable rule authoring needs a hardening layer this package does not provide.Net: the honest cost comparison is "adopt an unmaintained bundle" vs. "write ~200 lines against a maintained first-party component." The second wins on every axis except day-one effort.
To executives: There's a category of product capability — letting the business change eligibility, pricing, and routing rules without engineering releases — that we should have on the roadmap. This package is an old, unmaintained implementation of that idea: last shipped in 2018, effectively zero adoption, and built for a different framework than ours. I'm not recommending we take the dependency. I am recommending we note the pattern and budget a small, contained build against a maintained component, or evaluate a managed feature-flag/rules service if the need is broad. Expect the build to be small; expect the authoring, versioning, and audit surface to be the real investment.
To engineering: intaro/rule-engine-bundle evaluates ExpressionLanguage expressions in response to dispatched events. It is a Symfony bundle — no Laravel integration — last released 2018, 6 stars, 0 dependents, and predates current ExpressionLanguage and event-dispatcher contract APIs. Recommendation: do not adopt. If we want this capability, vendor symfony/expression-language (actively maintained, already in our dependency graph) behind a RuleEvaluator service with rules stored in a table, and keep evaluation server-side only — never on user-supplied strings without a whitelist. Rough effort: 1–2 days for the core, plus whatever we choose to spend on authoring and audit.
How can I help you explore Laravel packages today?