padam87/cron-bundle
Symfony bundle for defining and running cron jobs as annotated services. Schedule tasks with a simple @Cron annotation, prevent overlapping runs with locks, and execute jobs via a console command, keeping scheduled work organized, logged, and easy to test inside your Symfony app.
Verdict: Do not adopt as a direct Laravel dependency. Evaluate only as a standalone scheduler pattern, or treat it as a reference implementation. The package is technically coherent but structurally mismatched to the Laravel ecosystem and carries adoption risk that outweighs its feature surface.
Architecture fit
config/bundles.php, and console commands discovered through the container. Laravel has no equivalent bundle/extension registration contract, so "install and go" does not exist here.crontab — overlaps almost entirely with Laravel's native scheduler (Schedule::command() in routes/console.php) plus a single * * * * * php artisan schedule:run entry. Laravel already owns this problem idiomatically.Integration feasibility
artisan is built on Symfony Console, so a Symfony Application can be booted inside a Laravel app or a sibling console entrypoint. Practically, the bundle's dependency on FrameworkBundle's DI, config loading, and annotation/attribute discovery means you would hand-wire a second container — a maintenance burden with no product payoff.withoutOverlapping() + cache lock); (2) run it as an isolated standalone Symfony console app or sidecar, coupled to Laravel only through the CLI commands it invokes; (3) fork the crontab-rendering logic into a small internal package if that specific capability is genuinely required.Technical risk
crontab and renders command strings from declared jobs. Validate quoting/escaping and whether job definitions can inject arbitrary shell.Key questions
Schedule::command() does not, beyond writing the crontab file?Stack fit
Migration path
Schedule::command() is a mechanical translation, and the crontab becomes a single static line. Keep that as the documented escape hatch.Compatibility
ext-* requirements from composer.json.crontab in PATH and write permission to the spool.APP_TIMEZONE; crontab respects system timezone, not application config — a classic silent bug.Sequencing
Maintenance
Support
Scaling
Failure modes
PATH differs under cron, PHP binary path breaks after upgrade.Ramp-up
How can I help you explore Laravel packages today?