Cron\Validator\CrontabValidator::validate PHP Method

validate() public method

public validate ( $pattern )
    public function validate($pattern)
    {
        $pattern = $this->findReplacements($pattern);
        if (false !== strpos($pattern, '@')) {
            throw new InvalidPatternException('Unknown shorthand.');
        }
        $parts = preg_split('/[\\s\\t]+/', $pattern);
        $tests = [['partName' => 'minute', 'pattern' => '[0-5]?\\d', 'required' => true], ['partName' => 'hour', 'pattern' => '[01]?\\d|2[0-3]', 'required' => true], ['partName' => 'day', 'pattern' => '0?[1-9]|[12]\\d|3[01]', 'required' => true], ['partName' => 'month', 'pattern' => '[1-9]|1[012]', 'required' => true], ['partName' => 'day of week', 'pattern' => '[0-6]', 'required' => true], ['partName' => 'year', 'pattern' => '20([0-9]{2})', 'required' => false]];
        foreach ($tests as $i => $test) {
            if (!$test['required'] && !isset($parts[$i])) {
                continue;
            }
            if (!isset($parts[$i]) || !preg_match($this->buildPattern($test['pattern']), $parts[$i])) {
                throw new InvalidPatternException(sprintf('Invalid %s "%s".', $test['partName'], isset($parts[$i]) ? $parts[$i] : ''));
            }
        }
        return $pattern;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * @param string $pattern
  *
  * @throws \InvalidArgumentException
  */
 public function setPattern($pattern)
 {
     $pattern = $this->validator->validate($pattern);
     $this->parts = $this->parsePattern($pattern);
     $this->pattern = $pattern;
 }