/** * @param string $cronMinutes * @param Noovias_Cron_Data_CronExpression $data */ protected function convertMinutes($cronMinutes, Noovias_Cron_Data_CronExpression &$data) { /** * if cron minutes contain slash (e.g. *{slash}15), set option to everyx * and set everyxminutes to the number after *{slash} */ if (strpos($cronMinutes, '/') !== false) { $data->setMinuteOption(Noovias_Cron_Data_CronExpression::OPTION_EVERYX); preg_match('#\\*/(\\d+)#', $cronMinutes, $pockets); if (array_key_exists(1, $pockets)) { $data->setEveryXMinutes($pockets[1]); } else { throw new Exception('Every x minutes parameter wrong.'); } } elseif (strpos($cronMinutes, ',') !== false) { $data->setMinuteOption(Noovias_Cron_Data_CronExpression::OPTION_SPECIFY); $data->setSpecifyMinutes(explode(',', $cronMinutes)); } elseif (strpos($cronMinutes, '-') !== false) { $data->setMinuteOption(Noovias_Cron_Data_CronExpression::OPTION_FROMTO); preg_match('#(\\d+)-(\\d+)#', $cronMinutes, $pockets); if (array_key_exists(1, $pockets) && array_key_exists(2, $pockets)) { $data->setFromMinute($pockets[1]); $data->setToMinute($pockets[2]); } else { throw new Exception('From minute or to minute parameter wrong.'); } } elseif ($cronMinutes === '*') { $data->setMinuteOption(Noovias_Cron_Data_CronExpression::OPTION_EVERY); } elseif (is_numeric($cronMinutes)) { $data->setMinuteOption(Noovias_Cron_Data_CronExpression::OPTION_SPECIFY); $data->setSpecifyMinutes(array($cronMinutes)); } }