Skip to content

hollodotme/crontab-validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status Latest Stable Version Total Downloads License

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!