0 follower

Final Class Yiisoft\Strings\MemoizedCombinedRegexp

InheritanceYiisoft\Strings\MemoizedCombinedRegexp » Yiisoft\Strings\AbstractCombinedRegexp

MemoizedCombinedRegexp is a decorator for {@see AbstractCombinedRegexp} that caches results of - {@see AbstractCombinedRegexp::matches()} - {@see AbstractCombinedRegexp::getMatchingPattern()} - {@see AbstractCombinedRegexp::getMatchingPatternPosition()}.

Constants

Hide inherited constants

Constant Value Description Defined By
QUOTE_REPLACER '\/' Yiisoft\Strings\AbstractCombinedRegexp
REGEXP_DELIMITER '/' Yiisoft\Strings\AbstractCombinedRegexp

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( Yiisoft\Strings\AbstractCombinedRegexp $decorated )
$decorated Yiisoft\Strings\AbstractCombinedRegexp

                public function __construct(
    private readonly AbstractCombinedRegexp $decorated,
) {
}

            
getCompiledPattern() public method

public string getCompiledPattern ( )

                public function getCompiledPattern(): string
{
    return $this->decorated->getCompiledPattern();
}

            
getFlags() public method

public string getFlags ( )

                public function getFlags(): string
{
    return $this->decorated->getFlags();
}

            
getMatchingPattern() public method

public string getMatchingPattern ( string $string )
$string string

                public function getMatchingPattern(string $string): string
{
    $this->evaluate($string);
    return $this->getPatterns()[$this->getMatchingPatternPosition($string)];
}

            
getMatchingPatternPosition() public method

public integer getMatchingPatternPosition ( string $string )
$string string

                public function getMatchingPatternPosition(string $string): int
{
    $this->evaluate($string);
    return $this->results[$string]['position'] ?? $this->throwFailedMatchException($string);
}

            
getPatterns() public method

public array getPatterns ( )

                public function getPatterns(): array
{
    return $this->decorated->getPatterns();
}

            
matches() public method

public boolean matches ( string $string )
$string string

                public function matches(string $string): bool
{
    $this->evaluate($string);
    return $this->results[$string]['matches'];
}

            
throwFailedMatchException() protected method
protected void throwFailedMatchException ( string $string )
$string string
throws Exception

                protected function throwFailedMatchException(string $string): void
{
    throw new Exception(
        sprintf(
            'Failed to match pattern "%s" with string "%s".',
            $this->getCompiledPattern(),
            $string,
        )
    );
}