Symfony bundle that integrates dragonmantank/cron-expression
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
composer require setono/cron-expression-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
If you use Symfony Flex it will be enabled automatically. Else you need to add it to the bundles.php
.
<?php
// config/bundles.php
return [
// ...
Setono\CronExpressionBundle\SetonoCronExpressionBundle::class => ['all' => true],
// ...
];
<?php
// src/Form/TaskType.php
namespace App\Form;
use Setono\CronExpressionBundle\Form\Type\CronExpressionType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class TaskType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('task')
->add('schedule', CronExpressionType::class)
->add('save', SubmitType::class)
;
}
}
<?php
declare(strict_types=1);
namespace App\Entity;
use Cron\CronExpression;
use Doctrine\ORM\Mapping as ORM;
use Setono\CronExpressionBundle\Doctrine\DBAL\Types\CronExpressionType;
#[ORM\Entity]
class Task
{
#[ORM\Column(type: CronExpressionType::CRON_EXPRESSION_TYPE)]
private CronExpression $schedule;
}