return (new JobDealer())->setLogger($app->cfg('log'))->setPheanstalk($app->cfg('pheanstalk'))->setTube($app->cfg('tube')); })->cfg('getParams', function (µ $app) { $query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); parse_str($query, $getParams); return $getParams; }); if (file_exists('config.php')) { $config = (require 'config.php'); foreach ($config as $key => $value) { $app->cfg($key, $value); } } try { echo $app->get('/job', function (µ $app, array $params) { /** @var JobDealer $jobDealer */ $jobDealer = $app->cfg('job-dealer'); return $jobDealer->peek()->getData(); })->post('/job', function (µ $app, array $params) { /** @var JobDealer $jobDealer */ $jobDealer = $app->cfg('job-dealer'); $getParams = $app->cfg('getParams'); $jobDealer->add(file_get_contents("php://input"), !empty($getParams['priority']) ? $getParams['priority'] : PheanstalkInterface::DEFAULT_PRIORITY, !empty($getParams['delay']) ? $getParams['delay'] : PheanstalkInterface::DEFAULT_DELAY); http_response_code(201); })->delete('/job/(?<id>\\d+)', function (µ $app, array $params) { /** @var JobDealer $jobDealer */ $jobDealer = $app->cfg('job-dealer'); $jobDealer->done($params['id']); })->any('/reschedule/(?<id>\\d+)', function (µ $app, array $params) { /** @var JobDealer $jobDealer */ $jobDealer = $app->cfg('job-dealer'); $getParams = $app->cfg('getParams');