CrontabValidator
A validator for crontab expressions.
Sources used to determine the allowed expressions:
Features
- Validation of crontab expressions like 6,21,36,51 7-23/1 * FEB-NOV/2 *.
Requirements
- PHP >= 7.1
Installation
composer require "hollodotme/crontab-validator"
Usage
Boolean validation
<?php declare(strict_types=1);
namespace MyVendor\MyProject;
use hollodotme\CrontabValidator\CrontabValidator;
$validator = new CrontabValidator();
if ( $validator->isExpressionValid( '6,21,36,51 7-23/1 * FEB-NOV/2 *' ) )
{
echo 'Expression is valid.';
}
else
{
echo 'Expression is invalid.';
}
Guarding
<?php declare(strict_types=1);
namespace MyVendor\MyProject;
use hollodotme\CrontabValidator\CrontabValidator;
use hollodotme\CrontabValidator\Exceptions\InvalidExpressionException;
$validator = new CrontabValidator();
try
{
# => All fine, execution continues
$validator->guardExpressionIsValid( '6,21,36,51 7-23/1 * FEB-NOV/2 *' );
# => This will raise an InvalidExpressionException
$validator->guardExpressionIsValid( 'this is not a valid interval' );
}
catch ( InvalidExpressionException $e )
{
echo $e->getMessage();
}
Prints:
Invalid crontab expression: "this is not a valid interval"
Feedback and contributions welcome!