fgits/cron-bundle
fgits/cron-bundle is a Symfony bundle for managing cron jobs from configuration, letting you define, schedule, and run recurring tasks without editing system crontabs directly. It integrates cron expressions with your app's services and provides commands to list and execute due jobs.
crontab entries by hand. That is a real, recurring decision — but it is an infrastructure decision, not a product-feature decision, so it should be scoped to an ops/architecture spike rather than a roadmap line item./etc/cron.d, and schedules that travel with the code through review and deploy.Schedule facade + a single schedule:run cron entry) and Symfony has had an official symfony/scheduler component since 6.3. Either way, this package is duplicating something the framework already provides.Consider it only if all of the following hold:
schedule:run and withoutOverlapping() / onOneServer() instead.Look elsewhere if any of the following apply — and on the available evidence, several do:
symfony/scheduler) and Laravel's built-in scheduler both cover the use case natively, with better tooling around overlap protection and monitoring.Recommendation: do not adopt as a dependency. Treat it as a reference pattern at most, and only in a pre-6.3 Symfony context.
For executives: This is a small utility that runs scheduled commands in Symfony apps — functionality both major PHP frameworks already ship. It has no adoption, no visible maintainer activity, and no support path, so making it load-bearing would add risk without adding capability. Cost of adopting: near-zero licence, non-trivial ongoing ownership. Cost of the alternative: one cron entry pointing at the framework's own scheduler. Decision: skip; the build-vs-buy answer here is "we already have it."
For engineering: The concrete comparison is fgits/cron-bundle vs. symfony/scheduler (6.3+) vs. Laravel's Schedule facade. The frameworks win on overlap protection, single-server execution, and ecosystem tooling. If we do have a pre-6.3 Symfony service with hand-maintained crontabs, the better play is a short internal spike: a thin config-driven runner over CommandTester, or a scheduled upgrade path to a version with the native component. Either is a few days of work and leaves us owning code we understand.
For the roadmap: No capacity requested beyond a half-day evaluation already completed. Revisit only if a concrete Symfony service surfaces with a scheduling need and no upgrade path — in which case the decision is "fork and own," not "depend."
How can I help you explore Laravel packages today?