/crontab

Manage your crontab with some simple PHP commands

Primary LanguagePHPMIT LicenseMIT

Crontab

Latest Stable Version Minimum PHP Version Downloads License Build Status Scrutinizer Code Quality Code Coverage

Features

Lists all cron jobs with a nice OO interface. Add jobs to your crontab.

Requirements

  • PHP >= 7.0
  • POSIX Shell with crontab command

Installation

Installing crontab via Composer.

  "require": {
    "sebastianfeldmann/crontab": "~1.0"
  }

Usage

Read crontab

$crontab = new SebastianFeldmann\Crontab\Operator();
foreach ($crontab->getJobs() as $job) {
    echo "Description: . PHP_EOL . implode(PHP_EOL, $job->getComments()) . PHP_EOL;
    echo "Schedule: " . PHP_EOL . $job->getSchedule() . PHP_EOL;
    echo "Command: " . PHP_EOL . $job->getCommand() . PHP_EOL;
}

Add job to crontab

$crontab = new SebastianFeldmann\Crontab\Operator();
$crontab->addJob(
    new SebastianFeldmann\Crontab\Job(
        '30 4 * * *',
        '/foo/bar/binary',
        ['Some foo bar binary execution']
    )
);

This will add the following lines to your crontab.

# Some foobar binary execution
30 4 * * * /foo/bar/binary

The crontab parser is looking for commands and their description in the lines above the command. The parser expects commands to NOT spread over multiple lines with \.

# Descriptoon for some command
10 23 * * * some command

# Next Command Description
# even more description for the next command
30 5 * * * next command