setono/cron-expression-bundle

Symfony bundle that integrates dragonmantank/cron-expression

Installs: 3 064

Dependents: 1

Suggesters: 0

Stars: 6

Watchers: 1

Forks: 1

Open Issues: 0

Type:symfony-bundle

v1.0.0 2018-10-05 09:50 UTC

README

Symfony bundle that integrates dragonmantank/cron-expression

Latest Version on Packagist Software License Build Status Quality Score

Installation

Step 1: Download

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.

Step 2: Enable the bundle

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],
    // ...
];

Step 3: Add to form type

<?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)
        ;
    }
}

Step 4: Add to entity

<?php
// src/Entity/Task.php

namespace App\Entity;

use Cron\CronExpression;
use Doctrine\ORM\Mapping as ORM;

class Task
{
    // ...
    
    /**
     * @var CronExpression
     * 
     * @ORM\Column(type="cron_expression") 
     */
    protected $schedule;
    
    // ...
}