Chronos provides an object oriented library for managing cron jobs both with crontab and programmatically.
Add the following in your componser.json:
{ "require": { "helthe/chronos": "~1.0" } }At its core, Chronos uses a CRON expression parser to validate all cron jobs. It supports all the language characteristics defined here as well as the predefined scheduling definitions except @reboot.
You can use the library to both deploy cron jobs directly into crontab.
use Helthe\Component\Chronos\Crontab; use Helthe\Component\Chronos\Job\CommandJob; $crontab = new Crontab(); $job = new CommandJob('@hourly', '/usr/bin/my_great_command'); $crontab->add($job); $crontab->update();You can also programmatically run cron jobs.
use Helthe\Component\Chronos\CronJobScheduler; use Helthe\Component\Chronos\Job\CommandJob; $scheduler = new CronJobScheduler(); $job = new CommandJob('@hourly', '/usr/bin/my_great_command'); $scheduler->add($job); $scheduler->runJobs();Chronos was created to fill the need for managing recurring jobs in PHP. The initial inspiration for it was to have a Whenever equivalent in PHP.
The CRON expression parser was initially based on the parser built by Michael Dowling.
You can run the unit tests with the following command:
$ cd path/to/Helthe/Component/XXX/ $ composer.phar install --dev $ phpunit
