for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Recurrence\Rrule\Extractor;
use Recurrence\Model\Exception\InvalidRruleException;
/**
* Class AbstractExtractor
* @package Recurrence\Rrule\Model
*/
abstract class AbstractExtractor implements RruleExtractorInterface
{
* @param string $rRule
* @throws InvalidRruleException
* @return array|null
public function extract($rRule)
if (preg_match(sprintf('/%s=%s/', $this::RRULE_PARAMETER, $this::RRULE_PATTERN), $rRule, $matches)) {
Recurrence\Rrule\Extract...xtractor::RRULE_PATTERN
Recurrence\Rrule\Extract...ractor::RRULE_PARAMETER
return array_slice($matches, 1);
}
$this->throwExceptionOnInvalidParameter($rRule, $this::RRULE_PARAMETER);
return null;
* @param string $ruleKey
* @return void
public function throwExceptionOnInvalidParameter($rRule, $ruleKey)
if ((preg_match(sprintf('/%s=([\d\w]+)/', $ruleKey), $rRule, $matches) === 1)) {
throw new InvalidRruleException($ruleKey, ((count($matches) > 0)? implode(', ', array_slice($matches, 1)) : ''));