diff --git a/src/AST/Expander.php b/src/AST/Expander.php index b876bb37..62d830ff 100644 --- a/src/AST/Expander.php +++ b/src/AST/Expander.php @@ -6,15 +6,12 @@ final class Expander implements Node { - /** - * @var string - */ - private $name; + private string $name; /** * @var mixed[] */ - private $arguments; + private array $arguments = []; public function __construct(string $name) { @@ -37,6 +34,9 @@ public function hasArguments() : bool return (bool) \count($this->arguments); } + /** + * @return mixed[] + */ public function getArguments() : array { return $this->arguments; diff --git a/src/AST/Pattern.php b/src/AST/Pattern.php index c4dadd52..4f0f3f88 100644 --- a/src/AST/Pattern.php +++ b/src/AST/Pattern.php @@ -6,15 +6,12 @@ final class Pattern implements Node { - /** - * @var Type - */ - private $type; + private Type $type; /** * @var mixed[] */ - private $expanders; + private array $expanders = []; public function __construct(Type $type) { diff --git a/src/AST/Type.php b/src/AST/Type.php index 5b2ac581..4a9acc83 100644 --- a/src/AST/Type.php +++ b/src/AST/Type.php @@ -6,10 +6,7 @@ final class Type implements Node { - /** - * @var string - */ - private $type; + private string $type; public function __construct(string $type) { diff --git a/src/Backtrace/InMemoryBacktrace.php b/src/Backtrace/InMemoryBacktrace.php index 623703e6..4e0bec8f 100644 --- a/src/Backtrace/InMemoryBacktrace.php +++ b/src/Backtrace/InMemoryBacktrace.php @@ -11,9 +11,9 @@ final class InMemoryBacktrace implements Backtrace { /** - * @var mixed[] + * @var string[] */ - private $trace; + private array $trace = []; public function __construct() { @@ -31,7 +31,7 @@ public function matcherCanMatch(string $name, $value, bool $result) : void '#%d Matcher %s %s match pattern "%s"', $this->entriesCount(), $name, - $result ? 'can' : 'can\'t', + $result ? 'can' : "can't", new SingleLineString((string) new StringConverter($value)) ); } @@ -118,6 +118,9 @@ public function isEmpty() : bool return \count($this->trace) === 0; } + /** + * @return mixed[] + */ public function raw() : array { return $this->trace; diff --git a/src/Backtrace/VoidBacktrace.php b/src/Backtrace/VoidBacktrace.php index b20ed06f..72e19d77 100644 --- a/src/Backtrace/VoidBacktrace.php +++ b/src/Backtrace/VoidBacktrace.php @@ -46,6 +46,9 @@ public function isEmpty() : bool return true; } + /** + * @return mixed[] + */ public function raw() : array { return []; diff --git a/src/Exception/UnknownTypeException.php b/src/Exception/UnknownTypeException.php index cc738ac6..b0ca6c63 100644 --- a/src/Exception/UnknownTypeException.php +++ b/src/Exception/UnknownTypeException.php @@ -6,10 +6,7 @@ class UnknownTypeException extends Exception { - /** - * @var string - */ - private $type; + private string $type; public function __construct(string $type) { diff --git a/src/Factory/MatcherFactory.php b/src/Factory/MatcherFactory.php index 350c85a1..397aca6e 100644 --- a/src/Factory/MatcherFactory.php +++ b/src/Factory/MatcherFactory.php @@ -32,7 +32,7 @@ private function buildMatchers(Parser $parser, Backtrace $backtrace) : Matcher\C $matchers = [$scalarMatchers]; $matchers[] = new Matcher\JsonMatcher($arrayMatcher, $backtrace); - if (\class_exists('LSS\XML2Array')) { + if (\class_exists(\LSS\XML2Array::class)) { $matchers[] = new Matcher\XmlMatcher($arrayMatcher, $backtrace); } diff --git a/src/Lexer.php b/src/Lexer.php index 63f69f96..1984f637 100644 --- a/src/Lexer.php +++ b/src/Lexer.php @@ -8,28 +8,64 @@ final class Lexer extends AbstractLexer { + /** + * @var int + */ public const T_NONE = 1; + /** + * @var int + */ public const T_EXPANDER_NAME = 2; + /** + * @var int + */ public const T_CLOSE_PARENTHESIS = 3; + /** + * @var int + */ public const T_OPEN_CURLY_BRACE = 4; + /** + * @var int + */ public const T_CLOSE_CURLY_BRACE = 5; + /** + * @var int + */ public const T_STRING = 6; + /** + * @var int + */ public const T_NUMBER = 7; + /** + * @var int + */ public const T_BOOLEAN = 8; + /** + * @var int + */ public const T_NULL = 9; + /** + * @var int + */ public const T_COMMA = 10; + /** + * @var int + */ public const T_COLON = 11; + /** + * @var int + */ public const T_TYPE_PATTERN = 12; /** @@ -49,6 +85,8 @@ protected function getCatchablePatterns() : array /** * Lexical non-catchable patterns. + * + * @return string[] */ protected function getNonCatchablePatterns() : array { diff --git a/src/Matcher.php b/src/Matcher.php index 93db609f..ddf23332 100644 --- a/src/Matcher.php +++ b/src/Matcher.php @@ -8,15 +8,9 @@ final class Matcher { - /** - * @var ValueMatcher - */ - private $valueMatcher; + private ValueMatcher $valueMatcher; - /** - * @var Backtrace - */ - private $backtrace; + private Backtrace $backtrace; public function __construct(ValueMatcher $valueMatcher, Backtrace $backtrace) { diff --git a/src/Matcher/ArrayMatcher.php b/src/Matcher/ArrayMatcher.php index ea760c23..c2ac7239 100644 --- a/src/Matcher/ArrayMatcher.php +++ b/src/Matcher/ArrayMatcher.php @@ -11,26 +11,26 @@ final class ArrayMatcher extends Matcher { - public const PATTERN = 'array'; - - public const UNBOUNDED_PATTERN = '@...@'; - - public const UNIVERSAL_KEY = '@*@'; - /** - * @var ValueMatcher + * @var string */ - private $propertyMatcher; + public const PATTERN = 'array'; /** - * @var Parser + * @var string */ - private $parser; + public const UNBOUNDED_PATTERN = '@...@'; /** - * @var Backtrace + * @var string */ - private $backtrace; + public const UNIVERSAL_KEY = '@*@'; + + private ValueMatcher $propertyMatcher; + + private Parser $parser; + + private Backtrace $backtrace; public function __construct(ValueMatcher $propertyMatcher, Backtrace $backtrace, Parser $parser) { @@ -140,9 +140,7 @@ private function isPatternValid(array $pattern, array $values, string $parentPat $pattern = \array_filter( $pattern, - function ($item) use ($skipPattern) { - return $item !== $skipPattern; - } + fn ($item) => $item !== $skipPattern ); $notExistingKeys = $this->findNotExistingKeys($pattern, $values); @@ -158,11 +156,14 @@ function ($item) use ($skipPattern) { return true; } + /** + * @return mixed[] + */ private function findNotExistingKeys(array $patterns, array $values) : array { $notExistingKeys = \array_diff_key($patterns, $values); - return \array_filter($notExistingKeys, function ($pattern, $key) use ($values) { + return \array_filter($notExistingKeys, function ($pattern, $key) use ($values) : bool { if ($key === self::UNIVERSAL_KEY) { return false; } diff --git a/src/Matcher/BooleanMatcher.php b/src/Matcher/BooleanMatcher.php index e2af2c2b..39559074 100644 --- a/src/Matcher/BooleanMatcher.php +++ b/src/Matcher/BooleanMatcher.php @@ -10,17 +10,14 @@ final class BooleanMatcher extends Matcher { - public const PATTERN = 'boolean'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const PATTERN = 'boolean'; - /** - * @var Parser - */ - private $parser; + private Backtrace $backtrace; + + private Parser $parser; public function __construct(Backtrace $backtrace, Parser $parser) { diff --git a/src/Matcher/CallbackMatcher.php b/src/Matcher/CallbackMatcher.php index 2619e18a..b29fe8d2 100644 --- a/src/Matcher/CallbackMatcher.php +++ b/src/Matcher/CallbackMatcher.php @@ -9,10 +9,7 @@ final class CallbackMatcher extends Matcher { - /** - * @var Backtrace - */ - private $backtrace; + private Backtrace $backtrace; public function __construct(Backtrace $backtrace) { diff --git a/src/Matcher/ChainMatcher.php b/src/Matcher/ChainMatcher.php index 8a4b484f..b5a1bdb3 100644 --- a/src/Matcher/ChainMatcher.php +++ b/src/Matcher/ChainMatcher.php @@ -10,20 +10,14 @@ final class ChainMatcher extends Matcher { - /** - * @var string - */ - private $name; + private string $name; - /** - * @var Backtrace - */ - private $backtrace; + private Backtrace $backtrace; /** * @var ValueMatcher[] */ - private $matchers; + private array $matchers = []; /** * @param Backtrace $backtrace diff --git a/src/Matcher/DateMatcher.php b/src/Matcher/DateMatcher.php index c7fc9e10..68ab7c0e 100644 --- a/src/Matcher/DateMatcher.php +++ b/src/Matcher/DateMatcher.php @@ -11,6 +11,9 @@ final class DateMatcher extends Matcher { + /** + * @var string + */ public const PATTERN = 'date'; private Backtrace $backtrace; diff --git a/src/Matcher/DateTimeMatcher.php b/src/Matcher/DateTimeMatcher.php index b9cac4e8..131af4e7 100644 --- a/src/Matcher/DateTimeMatcher.php +++ b/src/Matcher/DateTimeMatcher.php @@ -11,6 +11,9 @@ final class DateTimeMatcher extends Matcher { + /** + * @var string + */ public const PATTERN = 'datetime'; private Backtrace $backtrace; diff --git a/src/Matcher/DoubleMatcher.php b/src/Matcher/DoubleMatcher.php index ba3755b2..6c5dcba8 100644 --- a/src/Matcher/DoubleMatcher.php +++ b/src/Matcher/DoubleMatcher.php @@ -10,17 +10,14 @@ final class DoubleMatcher extends Matcher { - public const PATTERN = 'double'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const PATTERN = 'double'; - /** - * @var Parser - */ - private $parser; + private Backtrace $backtrace; + + private Parser $parser; public function __construct(Backtrace $backtrace, Parser $parser) { diff --git a/src/Matcher/ExpressionMatcher.php b/src/Matcher/ExpressionMatcher.php index c7d4c69f..544c506c 100644 --- a/src/Matcher/ExpressionMatcher.php +++ b/src/Matcher/ExpressionMatcher.php @@ -10,12 +10,12 @@ final class ExpressionMatcher extends Matcher { - public const MATCH_PATTERN = "/^expr\((.*?)\)$/"; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const MATCH_PATTERN = "/^expr\((.*?)\)$/"; + + private Backtrace $backtrace; public function __construct(Backtrace $backtrace) { diff --git a/src/Matcher/IntegerMatcher.php b/src/Matcher/IntegerMatcher.php index 1b1389fc..79445565 100644 --- a/src/Matcher/IntegerMatcher.php +++ b/src/Matcher/IntegerMatcher.php @@ -10,17 +10,14 @@ final class IntegerMatcher extends Matcher { - public const PATTERN = 'integer'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const PATTERN = 'integer'; - /** - * @var Parser - */ - private $parser; + private Backtrace $backtrace; + + private Parser $parser; public function __construct(Backtrace $backtrace, Parser $parser) { diff --git a/src/Matcher/JsonMatcher.php b/src/Matcher/JsonMatcher.php index 4a828890..bd790fcb 100644 --- a/src/Matcher/JsonMatcher.php +++ b/src/Matcher/JsonMatcher.php @@ -11,15 +11,9 @@ final class JsonMatcher extends Matcher { - /** - * @var ArrayMatcher - */ - private $arrayMatcher; - - /** - * @var Backtrace - */ - private $backtrace; + private ArrayMatcher $arrayMatcher; + + private Backtrace $backtrace; public function __construct(ArrayMatcher $arrayMatcher, Backtrace $backtrace) { diff --git a/src/Matcher/JsonObjectMatcher.php b/src/Matcher/JsonObjectMatcher.php index fa93a400..5bf15439 100644 --- a/src/Matcher/JsonObjectMatcher.php +++ b/src/Matcher/JsonObjectMatcher.php @@ -11,17 +11,14 @@ final class JsonObjectMatcher extends Matcher { - public const JSON_PATTERN = 'json'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const JSON_PATTERN = 'json'; - /** - * @var Parser - */ - private $parser; + private Backtrace $backtrace; + + private Parser $parser; public function __construct(Backtrace $backtrace, Parser $parser) { diff --git a/src/Matcher/Matcher.php b/src/Matcher/Matcher.php index f320785a..f106883d 100644 --- a/src/Matcher/Matcher.php +++ b/src/Matcher/Matcher.php @@ -6,10 +6,7 @@ abstract class Matcher implements ValueMatcher { - /** - * @var null|string - */ - protected $error; + protected ?string $error = null; /** * @inheritdoc diff --git a/src/Matcher/NullMatcher.php b/src/Matcher/NullMatcher.php index a24e462b..eb150d79 100644 --- a/src/Matcher/NullMatcher.php +++ b/src/Matcher/NullMatcher.php @@ -9,12 +9,12 @@ final class NullMatcher extends Matcher { - public const MATCH_PATTERN = '/^@null@$/'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const MATCH_PATTERN = '/^@null@$/'; + + private Backtrace $backtrace; public function __construct(Backtrace $backtrace) { diff --git a/src/Matcher/NumberMatcher.php b/src/Matcher/NumberMatcher.php index 8f6ee39f..9c1474b7 100644 --- a/src/Matcher/NumberMatcher.php +++ b/src/Matcher/NumberMatcher.php @@ -10,17 +10,14 @@ final class NumberMatcher extends Matcher { - public const PATTERN = 'number'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const PATTERN = 'number'; - /** - * @var Parser - */ - private $parser; + private Backtrace $backtrace; + + private Parser $parser; public function __construct(Backtrace $backtrace, Parser $parser) { diff --git a/src/Matcher/OrMatcher.php b/src/Matcher/OrMatcher.php index f238413b..51cb81e7 100644 --- a/src/Matcher/OrMatcher.php +++ b/src/Matcher/OrMatcher.php @@ -8,17 +8,14 @@ final class OrMatcher extends Matcher { - public const MATCH_PATTERN = "/\|\|/"; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const MATCH_PATTERN = "/\|\|/"; - /** - * @var ChainMatcher - */ - private $chainMatcher; + private Backtrace $backtrace; + + private ChainMatcher $chainMatcher; public function __construct(Backtrace $backtrace, ChainMatcher $chainMatcher) { diff --git a/src/Matcher/Pattern/Assert/Json.php b/src/Matcher/Pattern/Assert/Json.php index d1b5797d..b20053ae 100644 --- a/src/Matcher/Pattern/Assert/Json.php +++ b/src/Matcher/Pattern/Assert/Json.php @@ -6,10 +6,19 @@ final class Json { + /** + * @var string + */ private const TRANSFORM_NEW_LINES = '/\r?\n|\r/'; + /** + * @var string + */ private const TRANSFORM_QUOTATION_PATTERN = '/([^"])@([a-zA-Z0-9\.]+)@([^"])/'; + /** + * @var string + */ private const TRANSFORM_QUOTATION_REPLACEMENT = '$1"@$2@"$3'; public static function isValid($value) : bool @@ -40,7 +49,7 @@ public static function isValidPattern($value) : bool return self::isValid($value) || self::isValid(self::transformPattern($value)); } - public static function transformPattern(string $pattern) : string + public static function transformPattern(string $pattern) : ?string { return \preg_replace( self::TRANSFORM_NEW_LINES, diff --git a/src/Matcher/Pattern/Expander/After.php b/src/Matcher/Pattern/Expander/After.php index e67a37a1..7f13f5f8 100644 --- a/src/Matcher/Pattern/Expander/After.php +++ b/src/Matcher/Pattern/Expander/After.php @@ -13,6 +13,9 @@ final class After implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'after'; private ?DateTime $boundaryDateTime; @@ -33,10 +36,10 @@ public function __construct($boundary) try { $this->boundaryDateTime = DateTime::fromString($boundary); - } catch (\Exception $e) { + } catch (\Exception $exception) { try { $this->boundaryTime = Time::fromString($boundary); - } catch (\Exception $e) { + } catch (\Exception $exception) { throw new \InvalidArgumentException(\sprintf('Boundary value "%s" is not a valid date, date time or time.', new StringConverter($boundary))); } } diff --git a/src/Matcher/Pattern/Expander/BacktraceBehavior.php b/src/Matcher/Pattern/Expander/BacktraceBehavior.php index dcd18145..ee001d0b 100644 --- a/src/Matcher/Pattern/Expander/BacktraceBehavior.php +++ b/src/Matcher/Pattern/Expander/BacktraceBehavior.php @@ -8,10 +8,7 @@ trait BacktraceBehavior { - /** - * @var Backtrace - */ - protected $backtrace; + protected Backtrace $backtrace; public function setBacktrace(Backtrace $backtrace) : void { diff --git a/src/Matcher/Pattern/Expander/Before.php b/src/Matcher/Pattern/Expander/Before.php index 13e5e002..326be32c 100644 --- a/src/Matcher/Pattern/Expander/Before.php +++ b/src/Matcher/Pattern/Expander/Before.php @@ -13,6 +13,9 @@ final class Before implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'before'; private ?DateTime $boundaryDateTime; @@ -33,10 +36,10 @@ public function __construct(string $boundary) try { $this->boundaryDateTime = DateTime::fromString($boundary); - } catch (\Exception $e) { + } catch (\Exception $exception) { try { $this->boundaryTime = Time::fromString($boundary); - } catch (\Exception $e) { + } catch (\Exception $exception) { throw new \InvalidArgumentException(\sprintf('Boundary value "%s" is not a valid date, date time or time.', new StringConverter($boundary))); } } diff --git a/src/Matcher/Pattern/Expander/Contains.php b/src/Matcher/Pattern/Expander/Contains.php index 9834527a..00400aee 100644 --- a/src/Matcher/Pattern/Expander/Contains.php +++ b/src/Matcher/Pattern/Expander/Contains.php @@ -11,21 +11,18 @@ final class Contains implements PatternExpander { use BacktraceBehavior; - public const NAME = 'contains'; - - /** - * @var null|string - */ - private $error; - /** * @var string */ - private $string; + public const NAME = 'contains'; + + private ?string $error = null; + + private string $string; - private $ignoreCase; + private bool $ignoreCase; - public function __construct(string $string, $ignoreCase = false) + public function __construct(string $string, bool $ignoreCase = false) { $this->string = $string; $this->ignoreCase = $ignoreCase; diff --git a/src/Matcher/Pattern/Expander/Count.php b/src/Matcher/Pattern/Expander/Count.php index f6d47f38..8171d98b 100644 --- a/src/Matcher/Pattern/Expander/Count.php +++ b/src/Matcher/Pattern/Expander/Count.php @@ -12,17 +12,14 @@ final class Count implements PatternExpander { use BacktraceBehavior; - public const NAME = 'count'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'count'; - /** - * @var int - */ - private $value; + private ?string $error = null; + + private int $value; public function __construct(int $value) { diff --git a/src/Matcher/Pattern/Expander/EndsWith.php b/src/Matcher/Pattern/Expander/EndsWith.php index 8d98e5dc..ce8ce8a3 100644 --- a/src/Matcher/Pattern/Expander/EndsWith.php +++ b/src/Matcher/Pattern/Expander/EndsWith.php @@ -11,22 +11,16 @@ final class EndsWith implements PatternExpander { use BacktraceBehavior; - public const NAME = 'endsWith'; - /** * @var string */ - private $stringEnding; + public const NAME = 'endsWith'; - /** - * @var null|string - */ - private $error; + private string $stringEnding; - /** - * @var bool - */ - private $ignoreCase; + private ?string $error = null; + + private bool $ignoreCase; public function __construct(string $stringEnding, bool $ignoreCase = false) { diff --git a/src/Matcher/Pattern/Expander/ExpanderMatch.php b/src/Matcher/Pattern/Expander/ExpanderMatch.php index b26d20df..559a0b0d 100644 --- a/src/Matcher/Pattern/Expander/ExpanderMatch.php +++ b/src/Matcher/Pattern/Expander/ExpanderMatch.php @@ -11,20 +11,20 @@ final class ExpanderMatch implements Matcher\Pattern\PatternExpander { use BacktraceBehavior; - public const NAME = 'match'; - /** - * @var Matcher + * @var string */ - private $matcher; + public const NAME = 'match'; + + private ?Matcher $matcher = null; /** - * @var null|string + * @var null|array|string */ private $pattern; /** - * @param null|string $pattern + * @param null|array|string $pattern */ public function __construct($pattern) { diff --git a/src/Matcher/Pattern/Expander/GreaterThan.php b/src/Matcher/Pattern/Expander/GreaterThan.php index 0f81bbcf..74061a26 100644 --- a/src/Matcher/Pattern/Expander/GreaterThan.php +++ b/src/Matcher/Pattern/Expander/GreaterThan.php @@ -11,6 +11,9 @@ final class GreaterThan implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'greaterThan'; /** @@ -18,10 +21,7 @@ final class GreaterThan implements PatternExpander */ private $boundary; - /** - * @var null|string - */ - private $error; + private ?string $error = null; public function __construct($boundary) { diff --git a/src/Matcher/Pattern/Expander/HasProperty.php b/src/Matcher/Pattern/Expander/HasProperty.php index 36f11728..049e5804 100644 --- a/src/Matcher/Pattern/Expander/HasProperty.php +++ b/src/Matcher/Pattern/Expander/HasProperty.php @@ -12,16 +12,16 @@ final class HasProperty implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'hasProperty'; - private $propertyName; + private string $propertyName; - /** - * @var null|string - */ - private $error; + private ?string $error = null; - public function __construct($propertyName) + public function __construct(string $propertyName) { $this->propertyName = $propertyName; } diff --git a/src/Matcher/Pattern/Expander/InArray.php b/src/Matcher/Pattern/Expander/InArray.php index 51aed569..d4bebd02 100644 --- a/src/Matcher/Pattern/Expander/InArray.php +++ b/src/Matcher/Pattern/Expander/InArray.php @@ -11,12 +11,12 @@ final class InArray implements PatternExpander { use BacktraceBehavior; - public const NAME = 'inArray'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'inArray'; + + private ?string $error = null; private $value; diff --git a/src/Matcher/Pattern/Expander/IsDateTime.php b/src/Matcher/Pattern/Expander/IsDateTime.php index a4e9b2c5..307b0bba 100644 --- a/src/Matcher/Pattern/Expander/IsDateTime.php +++ b/src/Matcher/Pattern/Expander/IsDateTime.php @@ -11,12 +11,12 @@ final class IsDateTime implements PatternExpander { use BacktraceBehavior; - public const NAME = 'isDateTime'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'isDateTime'; + + private ?string $error = null; public static function is(string $name) : bool { @@ -57,7 +57,7 @@ private function matchValue(string $value) : bool new \DateTime($value); return true; - } catch (\Exception $e) { + } catch (\Exception $exception) { return false; } } diff --git a/src/Matcher/Pattern/Expander/IsEmail.php b/src/Matcher/Pattern/Expander/IsEmail.php index 6509bd78..eeac52f0 100644 --- a/src/Matcher/Pattern/Expander/IsEmail.php +++ b/src/Matcher/Pattern/Expander/IsEmail.php @@ -11,12 +11,12 @@ final class IsEmail implements PatternExpander { use BacktraceBehavior; - public const NAME = 'isEmail'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'isEmail'; + + private ?string $error = null; public static function is(string $name) : bool { @@ -55,7 +55,7 @@ private function matchValue(string $value) : bool { try { return false !== \filter_var($value, FILTER_VALIDATE_EMAIL); - } catch (\Exception $e) { + } catch (\Exception $exception) { return false; } } diff --git a/src/Matcher/Pattern/Expander/IsEmpty.php b/src/Matcher/Pattern/Expander/IsEmpty.php index e9e2bceb..06b2eed6 100644 --- a/src/Matcher/Pattern/Expander/IsEmpty.php +++ b/src/Matcher/Pattern/Expander/IsEmpty.php @@ -11,12 +11,12 @@ final class IsEmpty implements PatternExpander { use BacktraceBehavior; - public const NAME = 'isEmpty'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'isEmpty'; + + private ?string $error = null; public static function is(string $name) : bool { diff --git a/src/Matcher/Pattern/Expander/IsIp.php b/src/Matcher/Pattern/Expander/IsIp.php index 3e294275..09e5a5f4 100644 --- a/src/Matcher/Pattern/Expander/IsIp.php +++ b/src/Matcher/Pattern/Expander/IsIp.php @@ -11,12 +11,12 @@ final class IsIp implements PatternExpander { use BacktraceBehavior; - public const NAME = 'isIp'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'isIp'; + + private ?string $error = null; public static function is(string $name) : bool { @@ -55,7 +55,7 @@ private function matchValue(string $value) : bool { try { return false !== \filter_var($value, FILTER_VALIDATE_IP); - } catch (\Exception $e) { + } catch (\Exception $exception) { return false; } } diff --git a/src/Matcher/Pattern/Expander/IsNotEmpty.php b/src/Matcher/Pattern/Expander/IsNotEmpty.php index 52d8dc9c..86d0269b 100644 --- a/src/Matcher/Pattern/Expander/IsNotEmpty.php +++ b/src/Matcher/Pattern/Expander/IsNotEmpty.php @@ -11,12 +11,12 @@ final class IsNotEmpty implements PatternExpander { use BacktraceBehavior; - public const NAME = 'isNotEmpty'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'isNotEmpty'; + + private ?string $error = null; public static function is(string $name) : bool { diff --git a/src/Matcher/Pattern/Expander/IsTzAbbreviation.php b/src/Matcher/Pattern/Expander/IsTzAbbreviation.php index 24cc4b1e..3fdd73b3 100644 --- a/src/Matcher/Pattern/Expander/IsTzAbbreviation.php +++ b/src/Matcher/Pattern/Expander/IsTzAbbreviation.php @@ -12,6 +12,9 @@ final class IsTzAbbreviation implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'isTzAbbreviation'; private ?string $error; @@ -48,7 +51,7 @@ public function match($value) : bool } return $result; - } catch (\Exception $e) { + } catch (\Exception $exception) { $this->error = \sprintf('Timezone expander require valid timezone, got "%s".', new StringConverter($value)); $this->backtrace->expanderFailed(self::NAME, $value, $this->error); diff --git a/src/Matcher/Pattern/Expander/IsTzIdentifier.php b/src/Matcher/Pattern/Expander/IsTzIdentifier.php index 1c186588..d78911c7 100644 --- a/src/Matcher/Pattern/Expander/IsTzIdentifier.php +++ b/src/Matcher/Pattern/Expander/IsTzIdentifier.php @@ -12,6 +12,9 @@ final class IsTzIdentifier implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'isTzIdentifier'; private ?string $error; @@ -48,7 +51,7 @@ public function match($value) : bool } return $result; - } catch (\Exception $e) { + } catch (\Exception $exception) { $this->error = \sprintf('Timezone expander require valid timezone, got "%s".', new StringConverter($value)); $this->backtrace->expanderFailed(self::NAME, $value, $this->error); diff --git a/src/Matcher/Pattern/Expander/IsTzOffset.php b/src/Matcher/Pattern/Expander/IsTzOffset.php index f1e275a5..5f1bc750 100644 --- a/src/Matcher/Pattern/Expander/IsTzOffset.php +++ b/src/Matcher/Pattern/Expander/IsTzOffset.php @@ -12,6 +12,9 @@ final class IsTzOffset implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'isTzOffset'; private ?string $error; @@ -48,7 +51,7 @@ public function match($value) : bool } return $result; - } catch (\Exception $e) { + } catch (\Exception $exception) { $this->error = \sprintf('Timezone expander require valid timezone, got "%s".', new StringConverter($value)); $this->backtrace->expanderFailed(self::NAME, $value, $this->error); diff --git a/src/Matcher/Pattern/Expander/IsUrl.php b/src/Matcher/Pattern/Expander/IsUrl.php index be5f0724..94c846bc 100644 --- a/src/Matcher/Pattern/Expander/IsUrl.php +++ b/src/Matcher/Pattern/Expander/IsUrl.php @@ -11,12 +11,12 @@ final class IsUrl implements PatternExpander { use BacktraceBehavior; - public const NAME = 'isUrl'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'isUrl'; + + private ?string $error = null; public static function is(string $name) : bool { @@ -55,7 +55,7 @@ private function matchValue(string $value) : bool { try { return false !== \filter_var($value, FILTER_VALIDATE_URL); - } catch (\Exception $e) { + } catch (\Exception $exception) { return false; } } diff --git a/src/Matcher/Pattern/Expander/LowerThan.php b/src/Matcher/Pattern/Expander/LowerThan.php index 59c3a746..397c5335 100644 --- a/src/Matcher/Pattern/Expander/LowerThan.php +++ b/src/Matcher/Pattern/Expander/LowerThan.php @@ -11,6 +11,9 @@ final class LowerThan implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'lowerThan'; /** @@ -18,10 +21,7 @@ final class LowerThan implements PatternExpander */ private $boundary; - /** - * @var null|string - */ - private $error; + private ?string $error = null; public function __construct($boundary) { diff --git a/src/Matcher/Pattern/Expander/MatchRegex.php b/src/Matcher/Pattern/Expander/MatchRegex.php index 5e68effa..d613ca80 100644 --- a/src/Matcher/Pattern/Expander/MatchRegex.php +++ b/src/Matcher/Pattern/Expander/MatchRegex.php @@ -11,17 +11,14 @@ final class MatchRegex implements PatternExpander { use BacktraceBehavior; - public const NAME = 'matchRegex'; - - /** - * @var null|string - */ - private $error; - /** * @var string */ - private $pattern; + public const NAME = 'matchRegex'; + + private ?string $error = null; + + private string $pattern; public function __construct(string $pattern) { diff --git a/src/Matcher/Pattern/Expander/NotContains.php b/src/Matcher/Pattern/Expander/NotContains.php index a2eb9547..daf9fdc8 100644 --- a/src/Matcher/Pattern/Expander/NotContains.php +++ b/src/Matcher/Pattern/Expander/NotContains.php @@ -11,17 +11,14 @@ final class NotContains implements PatternExpander { use BacktraceBehavior; - public const NAME = 'notContains'; - - /** - * @var null|string - */ - private $error; - /** * @var string */ - private $string; + public const NAME = 'notContains'; + + private ?string $error = null; + + private string $string; private $ignoreCase; diff --git a/src/Matcher/Pattern/Expander/OneOf.php b/src/Matcher/Pattern/Expander/OneOf.php index 503c11ed..c8f6ed70 100644 --- a/src/Matcher/Pattern/Expander/OneOf.php +++ b/src/Matcher/Pattern/Expander/OneOf.php @@ -11,17 +11,17 @@ final class OneOf implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'oneOf'; /** * @var PatternExpander[] */ - private $expanders; + private ?array $expanders = null; - /** - * @var null|string - */ - private $error; + private ?string $error = null; public function __construct() { diff --git a/src/Matcher/Pattern/Expander/Optional.php b/src/Matcher/Pattern/Expander/Optional.php index b2ec41bd..d18e05d3 100644 --- a/src/Matcher/Pattern/Expander/Optional.php +++ b/src/Matcher/Pattern/Expander/Optional.php @@ -10,6 +10,9 @@ final class Optional implements PatternExpander { use BacktraceBehavior; + /** + * @var string + */ public const NAME = 'optional'; public static function is(string $name) : bool diff --git a/src/Matcher/Pattern/Expander/Repeat.php b/src/Matcher/Pattern/Expander/Repeat.php index 730d9d2a..4334736c 100644 --- a/src/Matcher/Pattern/Expander/Repeat.php +++ b/src/Matcher/Pattern/Expander/Repeat.php @@ -13,27 +13,21 @@ final class Repeat implements PatternExpander { use BacktraceBehavior; - public const NAME = 'repeat'; - /** - * @var null|string + * @var string */ - private $error; + public const NAME = 'repeat'; + + private ?string $error = null; /** * @var mixed[]|string */ private $pattern; - /** - * @var bool - */ - private $isStrict; + private bool $isStrict; - /** - * @var bool - */ - private $isScalar; + private bool $isScalar; /** * @param array|string $pattern array to be matched or json-encoded string diff --git a/src/Matcher/Pattern/Expander/StartsWith.php b/src/Matcher/Pattern/Expander/StartsWith.php index 0be7aaff..3ddd99e7 100644 --- a/src/Matcher/Pattern/Expander/StartsWith.php +++ b/src/Matcher/Pattern/Expander/StartsWith.php @@ -11,22 +11,16 @@ final class StartsWith implements PatternExpander { use BacktraceBehavior; - public const NAME = 'startsWith'; - /** * @var string */ - private $stringBeginning; + public const NAME = 'startsWith'; - /** - * @var null|string - */ - private $error; + private string $stringBeginning; - /** - * @var bool - */ - private $ignoreCase; + private ?string $error = null; + + private bool $ignoreCase; public function __construct(string $stringBeginning, bool $ignoreCase = false) { diff --git a/src/Matcher/Pattern/Pattern.php b/src/Matcher/Pattern/Pattern.php index 409ecc6f..4fe8da7f 100644 --- a/src/Matcher/Pattern/Pattern.php +++ b/src/Matcher/Pattern/Pattern.php @@ -10,7 +10,7 @@ public function addExpander(PatternExpander $expander); public function matchExpanders($value) : bool; - public function getError(); + public function getError() : ?string; public function hasExpander(string $expanderName) : bool; } diff --git a/src/Matcher/Pattern/TypePattern.php b/src/Matcher/Pattern/TypePattern.php index e6dad37e..cf59112e 100644 --- a/src/Matcher/Pattern/TypePattern.php +++ b/src/Matcher/Pattern/TypePattern.php @@ -6,17 +6,14 @@ final class TypePattern implements Pattern { - /** - * @var string - */ - private $type; + private string $type; /** * @var PatternExpander[] */ - private $expanders; + private array $expanders = []; - private $error; + private ?string $error = null; public function __construct(string $type) { @@ -52,7 +49,7 @@ public function matchExpanders($value) : bool return true; } - public function getError() + public function getError() : ?string { return $this->error; } diff --git a/src/Matcher/ScalarMatcher.php b/src/Matcher/ScalarMatcher.php index 76d8435f..ae49e6a1 100644 --- a/src/Matcher/ScalarMatcher.php +++ b/src/Matcher/ScalarMatcher.php @@ -10,10 +10,7 @@ final class ScalarMatcher extends Matcher { - /** - * @var Backtrace - */ - private $backtrace; + private Backtrace $backtrace; public function __construct(Backtrace $backtrace) { diff --git a/src/Matcher/StringMatcher.php b/src/Matcher/StringMatcher.php index 6e9d8ca1..fd7e26f1 100644 --- a/src/Matcher/StringMatcher.php +++ b/src/Matcher/StringMatcher.php @@ -10,17 +10,14 @@ final class StringMatcher extends Matcher { - public const PATTERN = 'string'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const PATTERN = 'string'; - /** - * @var Parser - */ - private $parser; + private Backtrace $backtrace; + + private Parser $parser; public function __construct(Backtrace $backtrace, Parser $parser) { diff --git a/src/Matcher/TextMatcher.php b/src/Matcher/TextMatcher.php index 1cb2bef9..1cba09df 100644 --- a/src/Matcher/TextMatcher.php +++ b/src/Matcher/TextMatcher.php @@ -16,24 +16,21 @@ final class TextMatcher extends Matcher { - public const PATTERN_REGEXP = "/@[a-zA-Z\\.]+@(\\.\\w+\\([a-zA-Z0-9{},:@\\.\"'\\(\\)]*\\))*/"; - - public const PATTERN_REGEXP_PLACEHOLDER_TEMPLATE = '__PLACEHOLDER%d__'; - /** - * @var Parser + * @var string */ - private $parser; + public const PATTERN_REGEXP = "/@[a-zA-Z\\.]+@(\\.\\w+\\([a-zA-Z0-9{},:@\\.\"'\\(\\)]*\\))*/"; /** - * @var Backtrace + * @var string */ - private $backtrace; + public const PATTERN_REGEXP_PLACEHOLDER_TEMPLATE = '__PLACEHOLDER%d__'; - /** - * @var ValueMatcher - */ - private $matcher; + private Parser $parser; + + private Backtrace $backtrace; + + private ValueMatcher $matcher; public function __construct(ValueMatcher $matcher, Backtrace $backtrace, Parser $parser) { @@ -62,8 +59,8 @@ public function match($value, $pattern) : bool try { $patternRegex = $this->replacePlaceholderWithPatternRegexes($patternRegex, $patternsReplacedWithRegex); - } catch (UnknownTypeException $exception) { - $this->error = \sprintf('Type pattern "%s" is not supported by TextMatcher.', $exception->getType()); + } catch (UnknownTypeException $unknownTypeException) { + $this->error = \sprintf('Type pattern "%s" is not supported by TextMatcher.', $unknownTypeException->getType()); $this->backtrace->matcherFailed(self::class, $value, $pattern, (string) $this->error); return false; diff --git a/src/Matcher/TimeMatcher.php b/src/Matcher/TimeMatcher.php index 22bc857b..0f78cfdb 100644 --- a/src/Matcher/TimeMatcher.php +++ b/src/Matcher/TimeMatcher.php @@ -11,6 +11,9 @@ final class TimeMatcher extends Matcher { + /** + * @var string + */ public const PATTERN = 'time'; private Backtrace $backtrace; diff --git a/src/Matcher/TimeZoneMatcher.php b/src/Matcher/TimeZoneMatcher.php index 04cf2272..170dfcb2 100644 --- a/src/Matcher/TimeZoneMatcher.php +++ b/src/Matcher/TimeZoneMatcher.php @@ -11,8 +11,14 @@ final class TimeZoneMatcher extends Matcher { + /** + * @var string + */ public const PATTERN = 'timezone'; + /** + * @var string + */ public const PATTERN_SHORT = 'tz'; private Backtrace $backtrace; diff --git a/src/Matcher/UuidMatcher.php b/src/Matcher/UuidMatcher.php index 27976f30..37c608f2 100644 --- a/src/Matcher/UuidMatcher.php +++ b/src/Matcher/UuidMatcher.php @@ -10,21 +10,24 @@ final class UuidMatcher extends Matcher { + /** + * @var string + */ public const PATTERN = 'uuid'; - public const UUID_PATTERN = '[\da-f]{8}-[\da-f]{4}-[1-5][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'; - - public const UUID_FORMAT_PATTERN = '|^' . self::UUID_PATTERN . '$|'; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const UUID_PATTERN = '[\da-f]{8}-[\da-f]{4}-[1-5][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'; /** - * @var Parser + * @var string */ - private $parser; + public const UUID_FORMAT_PATTERN = '|^' . self::UUID_PATTERN . '$|'; + + private Backtrace $backtrace; + + private Parser $parser; public function __construct(Backtrace $backtrace, Parser $parser) { diff --git a/src/Matcher/WildcardMatcher.php b/src/Matcher/WildcardMatcher.php index 3f59d300..ce659524 100644 --- a/src/Matcher/WildcardMatcher.php +++ b/src/Matcher/WildcardMatcher.php @@ -8,12 +8,12 @@ final class WildcardMatcher extends Matcher { - public const MATCH_PATTERN = "/^@(\*|wildcard)@$/"; - /** - * @var Backtrace + * @var string */ - private $backtrace; + public const MATCH_PATTERN = "/^@(\*|wildcard)@$/"; + + private Backtrace $backtrace; public function __construct(Backtrace $backtrace) { diff --git a/src/Matcher/XmlMatcher.php b/src/Matcher/XmlMatcher.php index a6af10b5..476b8b79 100644 --- a/src/Matcher/XmlMatcher.php +++ b/src/Matcher/XmlMatcher.php @@ -11,15 +11,9 @@ final class XmlMatcher extends Matcher { - /** - * @var ArrayMatcher - */ - private $arrayMatcher; + private ArrayMatcher $arrayMatcher; - /** - * @var Backtrace - */ - private $backtrace; + private Backtrace $backtrace; public function __construct(ArrayMatcher $arrayMatcher, Backtrace $backtrace) { @@ -38,7 +32,7 @@ public function match($value, $pattern) : bool } if (!Xml::isValid($value) || !Xml::isValid($pattern)) { - $this->error = \sprintf('Value or pattern are not valid XML\'s'); + $this->error = \sprintf("Value or pattern are not valid XML's"); $this->backtrace->matcherFailed(self::class, $value, $pattern, $this->error); return false; diff --git a/src/PHPMatcher.php b/src/PHPMatcher.php index 3638c2bb..f77d571f 100644 --- a/src/PHPMatcher.php +++ b/src/PHPMatcher.php @@ -9,15 +9,9 @@ final class PHPMatcher { - /** - * @var null|Matcher - */ - private $matcher; + private ?Matcher $matcher = null; - /** - * @var Backtrace - */ - private $backtrace; + private Backtrace $backtrace; public function __construct(?Backtrace $backtrace = null) { diff --git a/src/PHPUnit/PHPMatcherAssertions.php b/src/PHPUnit/PHPMatcherAssertions.php index b9fbb90e..f884f91d 100644 --- a/src/PHPUnit/PHPMatcherAssertions.php +++ b/src/PHPUnit/PHPMatcherAssertions.php @@ -9,10 +9,7 @@ trait PHPMatcherAssertions { - /** - * @var null|Backtrace - */ - protected $backtrace; + protected ?Backtrace $backtrace = null; protected function setBacktrace(Backtrace $backtrace) : void { diff --git a/src/PHPUnit/PHPMatcherConstraint.php b/src/PHPUnit/PHPMatcherConstraint.php index d27005ee..15f02f3d 100644 --- a/src/PHPUnit/PHPMatcherConstraint.php +++ b/src/PHPUnit/PHPMatcherConstraint.php @@ -14,10 +14,7 @@ final class PHPMatcherConstraint extends Constraint { private $pattern; - /** - * @var PHPMatcher - */ - private $matcher; + private PHPMatcher $matcher; private $lastValue; diff --git a/src/Parser.php b/src/Parser.php index d8a5016a..878e1634 100644 --- a/src/Parser.php +++ b/src/Parser.php @@ -11,17 +11,14 @@ final class Parser { - public const NULL_VALUE = 'null'; - /** - * @var Lexer + * @var string */ - private $lexer; + public const NULL_VALUE = 'null'; - /** - * @var ExpanderInitializer - */ - private $expanderInitializer; + private Lexer $lexer; + + private ExpanderInitializer $expanderInitializer; public function __construct(Lexer $lexer, ExpanderInitializer $expanderInitializer) { @@ -35,7 +32,7 @@ public function hasValidSyntax(string $pattern) : bool $this->getAST($pattern); return true; - } catch (Exception $e) { + } catch (Exception $exception) { return false; } } @@ -69,14 +66,10 @@ private function getPattern() : AST\Pattern $pattern = null; - switch ($this->lexer->lookahead['type']) { - case Lexer::T_TYPE_PATTERN: - $pattern = new AST\Pattern(new AST\Type($this->lexer->lookahead['value'])); - - break; - - default: - throw PatternException::syntaxError($this->unexpectedSyntaxError($this->lexer->lookahead, '@type@ pattern')); + if ($this->lexer->lookahead['type'] == Lexer::T_TYPE_PATTERN) { + $pattern = new AST\Pattern(new AST\Type($this->lexer->lookahead['value'])); + } else { + throw PatternException::syntaxError($this->unexpectedSyntaxError($this->lexer->lookahead, '@type@ pattern')); } $this->lexer->moveNext(); @@ -218,10 +211,10 @@ private function getArrayArgument() : array return $arrayArgument; } - private function getNextArrayElement(array &$array) + private function getNextArrayElement(array &$array) : ?bool { if ($this->lexer->isNextToken(Lexer::T_CLOSE_CURLY_BRACE)) { - return; + return null; } $key = $this->getNextArgumentValue(); @@ -245,7 +238,7 @@ private function getNextArrayElement(array &$array) $array[$key] = $value; if (!$this->lexer->isNextToken(Lexer::T_COMMA)) { - return; + return null; } return true; diff --git a/src/Parser/ExpanderInitializer.php b/src/Parser/ExpanderInitializer.php index edd98e2e..ff6d0986 100644 --- a/src/Parser/ExpanderInitializer.php +++ b/src/Parser/ExpanderInitializer.php @@ -4,13 +4,13 @@ namespace Coduo\PHPMatcher\Parser; -use Coduo\PHPMatcher\AST\Expander as ExpanderNode; +use Coduo\PHPMatcher\AST\Expander; use Coduo\PHPMatcher\Backtrace; use Coduo\PHPMatcher\Exception\InvalidArgumentException; use Coduo\PHPMatcher\Exception\InvalidExpanderTypeException; use Coduo\PHPMatcher\Exception\UnknownExpanderClassException; use Coduo\PHPMatcher\Exception\UnknownExpanderException; -use Coduo\PHPMatcher\Matcher\Pattern\Expander; +use Coduo\PHPMatcher\Matcher\Pattern; use Coduo\PHPMatcher\Matcher\Pattern\PatternExpander; final class ExpanderInitializer @@ -18,38 +18,35 @@ final class ExpanderInitializer /** * @var class-string[] */ - private $expanderDefinitions = [ - Expander\After::NAME => Expander\After::class, - Expander\Before::NAME => Expander\Before::class, - Expander\Contains::NAME => Expander\Contains::class, - Expander\NotContains::NAME => Expander\NotContains::class, - Expander\Count::NAME => Expander\Count::class, - Expander\EndsWith::NAME => Expander\EndsWith::class, - Expander\GreaterThan::NAME => Expander\GreaterThan::class, - Expander\InArray::NAME => Expander\InArray::class, - Expander\IsDateTime::NAME => Expander\IsDateTime::class, - Expander\IsEmail::NAME => Expander\IsEmail::class, - Expander\IsEmpty::NAME => Expander\IsEmpty::class, - Expander\IsNotEmpty::NAME => Expander\IsNotEmpty::class, - Expander\IsUrl::NAME => Expander\IsUrl::class, - Expander\IsIp::NAME => Expander\IsIp::class, - Expander\IsTzOffset::NAME => Expander\IsTzOffset::class, - Expander\IsTzAbbreviation::NAME => Expander\IsTzAbbreviation::class, - Expander\IsTzIdentifier::NAME => Expander\IsTzIdentifier::class, - Expander\LowerThan::NAME => Expander\LowerThan::class, - Expander\MatchRegex::NAME => Expander\MatchRegex::class, - Expander\OneOf::NAME => Expander\OneOf::class, - Expander\Optional::NAME => Expander\Optional::class, - Expander\StartsWith::NAME => Expander\StartsWith::class, - Expander\Repeat::NAME => Expander\Repeat::class, - Expander\ExpanderMatch::NAME => Expander\ExpanderMatch::class, - Expander\HasProperty::NAME => Expander\HasProperty::class, + private array $expanderDefinitions = [ + Pattern\Expander\After::NAME => Pattern\Expander\After::class, + Pattern\Expander\Before::NAME => Pattern\Expander\Before::class, + Pattern\Expander\Contains::NAME => Pattern\Expander\Contains::class, + Pattern\Expander\NotContains::NAME => Pattern\Expander\NotContains::class, + Pattern\Expander\Count::NAME => Pattern\Expander\Count::class, + Pattern\Expander\EndsWith::NAME => Pattern\Expander\EndsWith::class, + Pattern\Expander\GreaterThan::NAME => Pattern\Expander\GreaterThan::class, + Pattern\Expander\InArray::NAME => Pattern\Expander\InArray::class, + Pattern\Expander\IsDateTime::NAME => Pattern\Expander\IsDateTime::class, + Pattern\Expander\IsEmail::NAME => Pattern\Expander\IsEmail::class, + Pattern\Expander\IsEmpty::NAME => Pattern\Expander\IsEmpty::class, + Pattern\Expander\IsNotEmpty::NAME => Pattern\Expander\IsNotEmpty::class, + Pattern\Expander\IsUrl::NAME => Pattern\Expander\IsUrl::class, + Pattern\Expander\IsIp::NAME => Pattern\Expander\IsIp::class, + Pattern\Expander\IsTzOffset::NAME => Pattern\Expander\IsTzOffset::class, + Pattern\Expander\IsTzAbbreviation::NAME => Pattern\Expander\IsTzAbbreviation::class, + Pattern\Expander\IsTzIdentifier::NAME => Pattern\Expander\IsTzIdentifier::class, + Pattern\Expander\LowerThan::NAME => Pattern\Expander\LowerThan::class, + Pattern\Expander\MatchRegex::NAME => Pattern\Expander\MatchRegex::class, + Pattern\Expander\OneOf::NAME => Pattern\Expander\OneOf::class, + Pattern\Expander\Optional::NAME => Pattern\Expander\Optional::class, + Pattern\Expander\StartsWith::NAME => Pattern\Expander\StartsWith::class, + Pattern\Expander\Repeat::NAME => Pattern\Expander\Repeat::class, + Pattern\Expander\ExpanderMatch::NAME => Pattern\Expander\ExpanderMatch::class, + Pattern\Expander\HasProperty::NAME => Pattern\Expander\HasProperty::class, ]; - /** - * @var \Coduo\PHPMatcher\Backtrace - */ - private $backtrace; + private Backtrace $backtrace; public function __construct(Backtrace $backtrace) { @@ -79,7 +76,7 @@ public function getExpanderDefinition(string $expanderName) : string return $this->expanderDefinitions[$expanderName]; } - public function initialize(ExpanderNode $expanderNode) : PatternExpander + public function initialize(Expander $expanderNode) : PatternExpander { if (!\array_key_exists($expanderNode->getName(), $this->expanderDefinitions)) { throw new UnknownExpanderException(\sprintf('Unknown expander "%s"', $expanderNode->getName())); @@ -91,7 +88,7 @@ public function initialize(ExpanderNode $expanderNode) : PatternExpander $arguments = []; foreach ($expanderNode->getArguments() as $argument) { - $arguments[] = ($argument instanceof ExpanderNode) + $arguments[] = ($argument instanceof Expander) ? $this->initialize($argument) : $argument; } diff --git a/src/Value/SingleLineString.php b/src/Value/SingleLineString.php index 2d726048..42c10de6 100644 --- a/src/Value/SingleLineString.php +++ b/src/Value/SingleLineString.php @@ -8,10 +8,7 @@ final class SingleLineString { - /** - * @var string - */ - private $raw; + private string $raw; public function __construct(string $raw) { diff --git a/tests/BacktraceTest.php b/tests/BacktraceTest.php index dad33e3a..c28af0fc 100644 --- a/tests/BacktraceTest.php +++ b/tests/BacktraceTest.php @@ -10,10 +10,7 @@ final class BacktraceTest extends TestCase { - /** - * @var PHPMatcher - */ - protected $matcher; + protected ?PHPMatcher $matcher = null; public function setUp() : void { diff --git a/tests/EmptyPatternsTest.php b/tests/EmptyPatternsTest.php index 900b8fe5..4c833a6e 100644 --- a/tests/EmptyPatternsTest.php +++ b/tests/EmptyPatternsTest.php @@ -9,10 +9,7 @@ final class EmptyPatternsTest extends TestCase { - /** - * @var PHPMatcher - */ - protected $matcher; + protected ?PHPMatcher $matcher = null; public static function emptyPatternString() { diff --git a/tests/ExpandersTest.php b/tests/ExpandersTest.php index 128acfb3..6eaff0e0 100644 --- a/tests/ExpandersTest.php +++ b/tests/ExpandersTest.php @@ -9,10 +9,7 @@ final class ExpandersTest extends TestCase { - /** - * @var PHPMatcher - */ - protected $matcher; + protected ?PHPMatcher $matcher = null; public static function expanderExamples() { diff --git a/tests/Matcher/CallbackMatcherTest.php b/tests/Matcher/CallbackMatcherTest.php index c176339a..4fcb747c 100644 --- a/tests/Matcher/CallbackMatcherTest.php +++ b/tests/Matcher/CallbackMatcherTest.php @@ -13,9 +13,7 @@ class CallbackMatcherTest extends TestCase public function test_positive_can_match() : void { $matcher = new CallbackMatcher(new Backtrace\InMemoryBacktrace()); - $this->assertTrue($matcher->canMatch(function () { - return true; - })); + $this->assertTrue($matcher->canMatch(fn () => true)); } public function test_negative_can_match() : void @@ -28,28 +26,16 @@ public function test_negative_can_match() : void public function test_positive_matches() : void { $matcher = new CallbackMatcher(new Backtrace\InMemoryBacktrace()); - $this->assertTrue($matcher->match(2, function ($value) { - return true; - })); - $this->assertTrue($matcher->match('true', function ($value) { - return $value; - })); + $this->assertTrue($matcher->match(2, fn ($value) => true)); + $this->assertTrue($matcher->match('true', fn ($value) => $value)); } public function test_negative_matches() : void { $matcher = new CallbackMatcher(new Backtrace\InMemoryBacktrace()); - $this->assertFalse($matcher->match(2, function ($value) { - return false; - })); - $this->assertFalse($matcher->match(0, function ($value) { - return $value; - })); - $this->assertFalse($matcher->match(null, function ($value) { - return $value; - })); - $this->assertFalse($matcher->match([], function ($value) { - return $value; - })); + $this->assertFalse($matcher->match(2, fn ($value) => false)); + $this->assertFalse($matcher->match(0, fn ($value) => $value)); + $this->assertFalse($matcher->match(null, fn ($value) => $value)); + $this->assertFalse($matcher->match([], fn ($value) => $value)); } } diff --git a/tests/Matcher/ChainMatcherTest.php b/tests/Matcher/ChainMatcherTest.php index 6bf7d18c..dbde9b31 100644 --- a/tests/Matcher/ChainMatcherTest.php +++ b/tests/Matcher/ChainMatcherTest.php @@ -5,7 +5,6 @@ namespace Coduo\PHPMatcher\Tests\Matcher; use Coduo\PHPMatcher\Backtrace; -use Coduo\PHPMatcher\Matcher\ArrayMatcher; use Coduo\PHPMatcher\Matcher\ChainMatcher; use Coduo\PHPMatcher\Matcher\ValueMatcher; use PHPUnit\Framework\MockObject\MockObject; @@ -13,10 +12,7 @@ class ChainMatcherTest extends TestCase { - /** - * @var ArrayMatcher - */ - private $matcher; + private ?ChainMatcher $matcher = null; /** * @var MockObject diff --git a/tests/Matcher/DoubleMatcherTest.php b/tests/Matcher/DoubleMatcherTest.php index 62d50689..1e41d9a9 100644 --- a/tests/Matcher/DoubleMatcherTest.php +++ b/tests/Matcher/DoubleMatcherTest.php @@ -12,10 +12,7 @@ class DoubleMatcherTest extends TestCase { - /** - * @var DoubleMatcher - */ - private $matcher; + private ?DoubleMatcher $matcher = null; public static function positiveCanMatchData() { diff --git a/tests/Matcher/IntegerMatcherTest.php b/tests/Matcher/IntegerMatcherTest.php index 153047cc..b7c94aec 100644 --- a/tests/Matcher/IntegerMatcherTest.php +++ b/tests/Matcher/IntegerMatcherTest.php @@ -12,10 +12,7 @@ class IntegerMatcherTest extends TestCase { - /** - * @var IntegerMatcher - */ - private $matcher; + private ?IntegerMatcher $matcher = null; public static function positiveCanMatchData() { diff --git a/tests/Matcher/JsonMatcherTest.php b/tests/Matcher/JsonMatcherTest.php index e63424b0..334be604 100644 --- a/tests/Matcher/JsonMatcherTest.php +++ b/tests/Matcher/JsonMatcherTest.php @@ -12,10 +12,7 @@ class JsonMatcherTest extends TestCase { - /** - * @var Matcher\JsonMatcher - */ - private $matcher; + private ?\Coduo\PHPMatcher\Matcher\JsonMatcher $matcher = null; public static function positivePatterns() { diff --git a/tests/Matcher/JsonObjectMatcherTest.php b/tests/Matcher/JsonObjectMatcherTest.php index 7f0e1999..9fb345e8 100644 --- a/tests/Matcher/JsonObjectMatcherTest.php +++ b/tests/Matcher/JsonObjectMatcherTest.php @@ -12,10 +12,7 @@ final class JsonObjectMatcherTest extends TestCase { - /** - * @var JsonObjectMatcher - */ - private $matcher; + private ?JsonObjectMatcher $matcher = null; public static function positiveMatches() { diff --git a/tests/Matcher/NullMatcherTest.php b/tests/Matcher/NullMatcherTest.php index 6ccf110f..ac9f2253 100644 --- a/tests/Matcher/NullMatcherTest.php +++ b/tests/Matcher/NullMatcherTest.php @@ -10,10 +10,7 @@ class NullMatcherTest extends TestCase { - /** - * @var NullMatcher - */ - private $matcher; + private ?NullMatcher $matcher = null; public static function positiveCanMatchData() { diff --git a/tests/Matcher/NumberMatcherTest.php b/tests/Matcher/NumberMatcherTest.php index 98808276..175f84df 100644 --- a/tests/Matcher/NumberMatcherTest.php +++ b/tests/Matcher/NumberMatcherTest.php @@ -12,10 +12,7 @@ class NumberMatcherTest extends TestCase { - /** - * @var NumberMatcher - */ - private $matcher; + private ?NumberMatcher $matcher = null; public static function positiveCanMatchData() { diff --git a/tests/Matcher/OrMatcherTest.php b/tests/Matcher/OrMatcherTest.php index fe2503e5..bf6aa9ba 100644 --- a/tests/Matcher/OrMatcherTest.php +++ b/tests/Matcher/OrMatcherTest.php @@ -11,10 +11,7 @@ class OrMatcherTest extends TestCase { - /** - * @var Matcher\OrMatcher - */ - private $matcher; + private ?Matcher $matcher = null; public static function positiveMatchData() { diff --git a/tests/Matcher/Pattern/PatternTest.php b/tests/Matcher/Pattern/PatternTest.php index f63319a7..3fcc8882 100644 --- a/tests/Matcher/Pattern/PatternTest.php +++ b/tests/Matcher/Pattern/PatternTest.php @@ -7,16 +7,12 @@ use Coduo\PHPMatcher\Matcher\Pattern\Expander\IsEmail; use Coduo\PHPMatcher\Matcher\Pattern\Expander\IsEmpty; use Coduo\PHPMatcher\Matcher\Pattern\Expander\Optional; -use Coduo\PHPMatcher\Matcher\Pattern\Pattern; use Coduo\PHPMatcher\Matcher\Pattern\TypePattern; use PHPUnit\Framework\TestCase; class PatternTest extends TestCase { - /** - * @var Pattern - */ - private $pattern; + private ?TypePattern $pattern = null; public static function examplesProvider() { diff --git a/tests/Matcher/Pattern/RegexConverterTest.php b/tests/Matcher/Pattern/RegexConverterTest.php index e7b313f2..32e15881 100644 --- a/tests/Matcher/Pattern/RegexConverterTest.php +++ b/tests/Matcher/Pattern/RegexConverterTest.php @@ -10,10 +10,7 @@ class RegexConverterTest extends TestCase { - /** - * @var RegexConverter - */ - private $converter; + private ?RegexConverter $converter = null; public function setUp() : void { diff --git a/tests/Matcher/StringMatcherTest.php b/tests/Matcher/StringMatcherTest.php index fe60cde1..52c86fa8 100644 --- a/tests/Matcher/StringMatcherTest.php +++ b/tests/Matcher/StringMatcherTest.php @@ -12,10 +12,7 @@ class StringMatcherTest extends TestCase { - /** - * @var StringMatcher - */ - private $matcher; + private ?StringMatcher $matcher = null; public static function positiveCanMatchData() { diff --git a/tests/Matcher/TextMatcherTest.php b/tests/Matcher/TextMatcherTest.php index 71cafe88..bd01fcde 100644 --- a/tests/Matcher/TextMatcherTest.php +++ b/tests/Matcher/TextMatcherTest.php @@ -12,10 +12,7 @@ class TextMatcherTest extends TestCase { - /** - * @var Matcher\TextMatcher - */ - private $matcher; + private ?\Coduo\PHPMatcher\Matcher\TextMatcher $matcher = null; public function setUp() : void { diff --git a/tests/Matcher/UuidMatcherTest.php b/tests/Matcher/UuidMatcherTest.php index 3cc0ed35..62b98e80 100644 --- a/tests/Matcher/UuidMatcherTest.php +++ b/tests/Matcher/UuidMatcherTest.php @@ -12,10 +12,7 @@ class UuidMatcherTest extends TestCase { - /** - * @var UuidMatcher - */ - private $matcher; + private ?UuidMatcher $matcher = null; public static function positiveCanMatchData() { diff --git a/tests/Matcher/XmlMatcherTest.php b/tests/Matcher/XmlMatcherTest.php index 5d2cd085..2bb0e776 100644 --- a/tests/Matcher/XmlMatcherTest.php +++ b/tests/Matcher/XmlMatcherTest.php @@ -12,10 +12,7 @@ class XmlMatcherTest extends TestCase { - /** - * @var Matcher\XmlMatcher - */ - private $matcher; + private ?\Coduo\PHPMatcher\Matcher\XmlMatcher $matcher = null; public static function positivePatterns() { diff --git a/tests/MatcherTest.php b/tests/MatcherTest.php index f1628387..f2db5c30 100644 --- a/tests/MatcherTest.php +++ b/tests/MatcherTest.php @@ -161,9 +161,7 @@ public function test_full_text_matcher() : void public function test_matcher_with_callback() : void { $this->assertMatchesPattern( - function ($value) { - return $value === 'test'; - }, + fn ($value) => $value === 'test', 'test' ); } diff --git a/tests/OrMatcherTest.php b/tests/OrMatcherTest.php index 9d62a8ea..f3dcfc4d 100644 --- a/tests/OrMatcherTest.php +++ b/tests/OrMatcherTest.php @@ -9,10 +9,7 @@ final class OrMatcherTest extends TestCase { - /** - * @var PHPMatcher - */ - protected $matcher; + protected ?PHPMatcher $matcher = null; public static function orExamples() { diff --git a/tests/ParserSyntaxErrorTest.php b/tests/ParserSyntaxErrorTest.php index 86d14ee9..47e583b5 100644 --- a/tests/ParserSyntaxErrorTest.php +++ b/tests/ParserSyntaxErrorTest.php @@ -12,10 +12,7 @@ class ParserSyntaxErrorTest extends TestCase { - /** - * @var Parser - */ - private $parser; + private ?Parser $parser = null; public function setUp() : void { diff --git a/tests/ParserTest.php b/tests/ParserTest.php index f92e0c96..3924d8ce 100644 --- a/tests/ParserTest.php +++ b/tests/ParserTest.php @@ -12,10 +12,7 @@ class ParserTest extends TestCase { - /** - * @var Parser - */ - private $parser; + private ?Parser $parser = null; public static function expandersWithArrayArguments() {