A validator for crontab expressions.
Sources used to determine the allowed expressions:
- Validation of crontab expressions like 6,21,36,51 7-23/1 * FEB-NOV/2 *.
- PHP >= 7.1
composer require "hollodotme/crontab-validator"
<?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.';
}
<?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!