Phprest\Annotation\Route::getSinceUntilRegExp PHP Method

getSinceUntilRegExp() protected method

protected getSinceUntilRegExp ( string $sinceVersion, string $untilVersion ) : string
$sinceVersion string
$untilVersion string
return string
    protected function getSinceUntilRegExp($sinceVersion, $untilVersion)
    {
        $sinceVersion = str_pad($sinceVersion, 3, '.0');
        $untilVersion = str_pad($untilVersion, 3, '.0');
        if (!($sinceVersion < $untilVersion)) {
            throw new \LogicException('since must be lesser than until');
        }
        if ($sinceVersion[0] === $untilVersion[0]) {
            return sprintf('(?:%d\\.[%d-%d])', $sinceVersion[0], $sinceVersion[2], $untilVersion[2]);
        } elseif (abs($sinceVersion[0] - $untilVersion[0]) === 1) {
            return sprintf('(?:%d\\.[%d-9])|(?:%d\\.[0-%d])', $sinceVersion[0], $sinceVersion[2], $untilVersion[0], $untilVersion[2]);
        } else {
            return sprintf('(?:%d\\.[%d-9])|(?:%d\\.[0-%d])|(?:[%d-%d]\\.\\d)', $sinceVersion[0], $sinceVersion[2], $untilVersion[0], $untilVersion[2], 9 < $sinceVersion[0] + 1 ? 9 : $sinceVersion[0] + 1, 0 > $untilVersion[0] - 1 ? 0 : $untilVersion[0] - 1);
        }
    }