hollodotme/crontab-expression

Library to validate crontab expressions and check their due date

v0.1.0 2017-12-13 16:02 UTC

This package is auto-updated.

Last update: 2024-10-29 05:22:25 UTC


README

Build Status Latest Stable Version Total Downloads Coverage Status

CrontabExpression

Description

Library to validate crontab expressions and check their due date

Requirements

  • PHP >= 7.1

Installation

composer require hollodotme/crontab-expression

Usage

Validate expressions

Expressions are validated on construction of CrontabExpression.

If you provide an invalid expression a hollodotme\CrontabValidator\Exceptions\InvalidExpressionException will be thrown.

If you need boolean validation of crontab expressions, please use hollodotme/crontab-validator. The hollodotme/crontab-validator package is a dependency for this package (hollodotme/crontab-expression), so you can also use the validator separately:

<?php declare(strict_types=1);

namespace YourVendor\YourProject;

use hollodotme\CrontabValidator\CrontabValidator;

$validator = new CrontabValidator();

if ($validator->isExpressionValid('*/10 6-21 * * 1-5'))
{
	echo 'Expression is valid.';
}
else
{
	echo 'Expression is invalid.';
}

Prints:

Expression is valid.

Check if date satisfies expression (expression is due)

<?php declare(strict_types=1);

namespace YourVendor\YourProject;

use hollodotme\CrontabExpression\CrontabExpression;

$expression = new CrontabExpression('*/10 6-21 * * 1-5');

echo $expression->isDue(new \DateTimeImmutable('2017-12-13 16:30:00')) ? 'Is due.' : 'Is not due.';
echo $expression->isDue(new \DateTimeImmutable('2017-12-10 16:30:00')) ? 'Is due.' : 'Is not due.';

# If you omit the $dateTime parameter, new \DateTimeImmutable() - current date - will be used.
echo $expression->isDue() ? 'Depends on your current date & time. (DUE)' : 'Depends on your current date & time. (NOT DUE)';

Prints:

Is due.
Is not due.
Depends on your current date & time. (DUE|NOT DUE)

Contributing

Contributions are welcome and will be fully credited. Please see the contribution guide for details.