setono/cron-expression-bundle
Symfony bundle integrating dragonmantank/cron-expression. Provides a CronExpression form field and a Doctrine DBAL type to store Cron\CronExpression in entities, making it easy to validate, edit, and persist cron schedules in your app.
dragonmantank/cron-expression, making it a seamless fit for Symfony-based applications. It leverages Symfony’s Form Component, Doctrine DBAL, and Validation systems, reducing friction in adoption.dragonmantank/cron-expression is a battle-tested library for parsing and validating cron expressions, ensuring reliability for scheduling logic.CronExpressionType) allows for direct storage of cron expressions in databases, simplifying persistence for scheduled tasks.validation_message option). May need custom validators for edge cases.CronExpressionType is Doctrine DBAL-focused; non-Doctrine ORMs (e.g., Eloquent) would require workarounds (e.g., string storage + runtime parsing).symfony/form, symfony/validator, and doctrine/dbal as standalone packages.laravelcollective/html or craftzdog/laravel-form-request-validation for form types.Validator::extend() to replicate the bundle’s logic.dragonmantank/cron-expression directly and build custom form handlers/validators.CronExpressionType in Symfony Forms.$builder->add('schedule', CronExpressionType::class, [
'validation_message' => 'Invalid cron expression: {{ value }}',
]);
CronExpressionType::CRON_EXPRESSION_TYPE to Doctrine entities.CronExpressionType). Older versions may need polyfills.dragonmantank/cron-expression dependency).dragonmantank/cron-expression can be used with custom validation.| Step | Priority | Effort | Dependencies |
|---|---|---|---|
Add to composer.json |
Low | 5 mins | None |
| Enable bundle | Low | 2 mins | Symfony Flex or bundles.php |
| Form integration | Medium | 15 mins | Setono\CronExpressionBundle |
| Doctrine mapping | High | 30 mins | Database schema changes |
| Custom validation | Optional | 1 hour | Business logic requirements |
| Testing | High | 2 hours | All prior steps |
dragonmantank/cron-expression is stable, but Symfony/Doctrine updates may require bundle version bumps.CronExpressionType doesn’t impact indexing or query performance.| Scenario | Impact | Mitigation |
|---|---|---|
| Invalid cron expression in DB | Corrupted data | Use database constraints + validation. |
| Symfony version mismatch | Bundle incompatibility | Pin versions in composer.json. |
| PHP 8.1+ upgrade required | Migration effort | Test thoroughly; use Docker for isolation. |
| Custom validation bypassed | Security risks | Combine with runtime checks. |
* * * * *).validation_message).How can I help you explore Laravel packages today?