Newer
Older
<?php
/**
* This file contains QUI\Cron\Console
*/
namespace QUI\Cron;
/**
* Cron Console Manager
*
* @author www.namerobot.com (Henning Leutz)
*/
class Console extends \QUI\System\Console\Tool
{
/**
* Konstruktor
*/
public function __construct()
{
$this->setName('package:cron')
->setDescription('Cron Manager');
}
/**
* (non-PHPdoc)
* @see \QUI\System\Console\Tool::execute()
*/
public function execute()
{
$run = $this->getArgument('--run');
$list = $this->getArgument('--list');
$listall = $this->getArgument('--list-all');
$this->writeLn('Welcome to the Cron Manager');
$this->writeLn('Which Command would you execute?');
$this->writeLn('');
$this->commandRead();
}
/**
* Read the command from the command line
*/
public function commandRead()
{
$this->writeLn('Available Commands: ');
$this->writeLn("- run\t\trun all active crons");
$this->writeLn("- list\t\tlist all active crons");
$this->writeLn("- list-all\tlist all crons");
$command = $this->readInput();
case 'run':
$this->run();
$this->commandRead();
// list all inserted crons
case 'list':
$this->listCrons();
$this->commandRead();
// list all inserted crons
case 'list-all':
$this->listAllCrons();
$this->commandRead();
default:
$this->writeLn('Command not found, please type another command',
'red');
$this->commandRead();
}
}
/**
* Execute all upcoming crons
*/
public function run()
{
$this->write('Execute all upcoming crons ...');
$Manager->execute();
$this->write('finish');
}
/**
* List all active crons
*/
public function listCrons()
{
$this->writeLn('Cron list:');
$this->writeLn('=======================================================');
$this->writeLn('');
$time = $entry['min'].' '.$entry['hour'].' '.$entry['day'].' '
.$entry['month'];
$this->writeLn('ID: '.$entry['id']);
$this->writeLn($time."\t".$exec, 'green');
$this->writeLn('=======================================================');
$this->writeLn('');
}
/**
* List all inserted Crons
*/
public function listAllCrons()
{
$this->writeLn('Cron list:');
$this->writeLn('=======================================================');
$this->writeLn('');
foreach ($list as $entry) {
$time = $entry['min'].' '.$entry['hour'].' '.$entry['day'].' '
.$entry['month'];
$this->writeLn('ID: '.$entry['id']);
$this->writeLn($time."\t".$exec, 'green');
$this->writeLn('=======================================================');
$this->writeLn('');