diff --git a/.cs.php b/.cs.php index 2bba5e9..52c4c3e 100644 --- a/.cs.php +++ b/.cs.php @@ -19,7 +19,7 @@ 'array_syntax' => ['syntax' => 'short'], 'cast_spaces' => ['space' => 'none'], 'concat_space' => ['spacing' => 'one'], - 'compact_nullable_typehint' => true, + 'compact_nullable_type_declaration' => true, 'declare_equal_normalize' => ['space' => 'single'], 'general_phpdoc_annotation_remove' => [ 'annotations' => [ @@ -36,7 +36,11 @@ 'phpdoc_order' => true, // psr-5 'phpdoc_no_useless_inheritdoc' => false, 'protected_to_private' => false, - 'yoda_style' => false, + 'yoda_style' => [ + 'equal' => false, + 'identical' => false, + 'less_and_greater' => false + ], 'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'], 'ordered_imports' => [ 'sort_algorithm' => 'alpha', diff --git a/LICENSE b/LICENSE index bf7a9a3..bfcf021 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2023 odan +Copyright (c) 2025 odan Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 42da7ca..a93f698 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ the [notification pattern](https://martinfowler.com/articles/replaceThrowWithNot ## Requirements -* PHP 8.1+ +* PHP 8.1 - 8.4 ## Installation diff --git a/composer.json b/composer.json index f97bee5..2d9114c 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "psr15" ], "require": { - "php": "^8.1", + "php": "8.1.* || 8.2.* || 8.3.* || 8.4.*", "ext-json": "*", "psr/http-factory": "^1.0.1", "psr/http-server-middleware": "^1.0.1" @@ -21,7 +21,7 @@ "fig/http-message-util": "^1.1", "friendsofphp/php-cs-fixer": "^3", "nyholm/psr7": "^1.4", - "phpstan/phpstan": "^1", + "phpstan/phpstan": "^1 || ^2", "phpunit/phpunit": "^10", "relay/relay": "^2.0", "slim/psr7": "^1", @@ -53,13 +53,16 @@ "sniffer:check": "phpcs --standard=phpcs.xml", "sniffer:fix": "phpcbf --standard=phpcs.xml", "stan": "phpstan analyse -c phpstan.neon --no-progress --ansi", - "test": "phpunit --configuration phpunit.xml --do-not-cache-result --colors=always", + "test": "phpunit --configuration phpunit.xml --do-not-cache-result --colors=always --display-warnings --display-deprecations --no-coverage", "test:all": [ "@cs:check", "@sniffer:check", "@stan", "@test" ], - "test:coverage": "php -d xdebug.mode=coverage -r \"require 'vendor/bin/phpunit';\" -- --configuration phpunit.xml --do-not-cache-result --colors=always --coverage-clover build/logs/clover.xml --coverage-html build/coverage" + "test:coverage": [ + "@putenv XDEBUG_MODE=coverage", + "phpunit --configuration phpunit.xml --do-not-cache-result --colors=always --display-warnings --display-deprecations --coverage-clover build/coverage/clover.xml --coverage-html build/coverage --coverage-text" + ] } } diff --git a/phpstan.neon b/phpstan.neon index d5512d5..9248194 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,8 +1,6 @@ parameters: level: 8 reportUnmatchedIgnoredErrors: false - checkMissingIterableValueType: false - checkGenericClassInNonGenericObjectType: false paths: - src - tests diff --git a/src/Converter/CakeValidationConverter.php b/src/Converter/CakeValidationConverter.php index 9c2b0da..b57ad14 100644 --- a/src/Converter/CakeValidationConverter.php +++ b/src/Converter/CakeValidationConverter.php @@ -12,7 +12,7 @@ final class CakeValidationConverter implements ValidationConverterInterface /** * Create validation result from array with errors. * - * @param array $errors The validation errors + * @param array $errors The validation errors * * @return ValidationResult The result */ @@ -29,7 +29,7 @@ public function createValidationResult($errors): ValidationResult * Add errors. * * @param ValidationResult $result The result - * @param array $errors The errors + * @param array $errors The errors * @param string $path The path * * @return void @@ -48,7 +48,7 @@ private function addErrors(ValidationResult $result, array $errors, string $path * Add sub errors. * * @param ValidationResult $result The result - * @param array $error The error + * @param array $error The error * @param string $path The path * * @return void diff --git a/src/Converter/ValitronValidationValidationConverter.php b/src/Converter/ValitronValidationValidationConverter.php index 6003644..bde90e8 100644 --- a/src/Converter/ValitronValidationValidationConverter.php +++ b/src/Converter/ValitronValidationValidationConverter.php @@ -12,7 +12,7 @@ final class ValitronValidationValidationConverter implements ValidationConverter /** * Create validation result from array with errors. * - * @param array $errors The errors + * @param array $errors The errors * * @return ValidationResult The result */ diff --git a/src/Exception/ValidationException.php b/src/Exception/ValidationException.php index 8329c3b..8c6eb7e 100644 --- a/src/Exception/ValidationException.php +++ b/src/Exception/ValidationException.php @@ -26,9 +26,9 @@ final class ValidationException extends DomainException */ public function __construct( string $message, - ValidationResult $validationResult = null, + ?ValidationResult $validationResult = null, int $code = 422, - Throwable $previous = null + ?Throwable $previous = null ) { parent::__construct($message, $code, $previous); diff --git a/src/Factory/CakeValidationFactory.php b/src/Factory/CakeValidationFactory.php index b9c208a..22cc782 100644 --- a/src/Factory/CakeValidationFactory.php +++ b/src/Factory/CakeValidationFactory.php @@ -24,7 +24,7 @@ public function createValidator(): Validator /** * Create validation result from array with errors. * - * @param array $errors The errors + * @param array $errors The errors * * @return ValidationResult The result */ diff --git a/src/Transformer/ErrorDetailsResultTransformer.php b/src/Transformer/ErrorDetailsResultTransformer.php index 98fb317..d61170e 100644 --- a/src/Transformer/ErrorDetailsResultTransformer.php +++ b/src/Transformer/ErrorDetailsResultTransformer.php @@ -32,9 +32,9 @@ public function __construct(string $detailsName = 'details') * @param ValidationResult $validationResult The validation result * @param ValidationException|null $exception The validation exception * - * @return array The transformed result + * @return array The transformed result */ - public function transform(ValidationResult $validationResult, ValidationException $exception = null): array + public function transform(ValidationResult $validationResult, ?ValidationException $exception = null): array { $error = []; @@ -61,7 +61,7 @@ public function transform(ValidationResult $validationResult, ValidationExceptio * * @param ValidationError[] $errors The errors * - * @return array The details as array + * @return array The details as array */ private function getErrorDetails(array $errors): array { diff --git a/src/Transformer/ResultTransformerInterface.php b/src/Transformer/ResultTransformerInterface.php index 623b8d2..df9add6 100644 --- a/src/Transformer/ResultTransformerInterface.php +++ b/src/Transformer/ResultTransformerInterface.php @@ -16,7 +16,7 @@ interface ResultTransformerInterface * @param ValidationResult $validationResult The validation result * @param ValidationException|null $exception The validation exception * - * @return array The transformed result + * @return array The transformed result */ - public function transform(ValidationResult $validationResult, ValidationException $exception = null): array; + public function transform(ValidationResult $validationResult, ?ValidationException $exception = null): array; } diff --git a/src/ValidationResult.php b/src/ValidationResult.php index 622a643..d876938 100644 --- a/src/ValidationResult.php +++ b/src/ValidationResult.php @@ -74,7 +74,7 @@ public function clear(): void * The message SHOULD be limited to a concise single sentence * @param string|null $code A numeric or alphanumeric value that indicates the error type that occurred. (optional) */ - public function addError(string $field, string $message, string $code = null): void + public function addError(string $field, string $message, ?string $code = null): void { $error = new ValidationError($message); $error->setField($field)->setCode($code); diff --git a/tests/Converter/CakeValidationFactoryTest.php b/tests/Converter/CakeValidationFactoryTest.php index 9608e00..ee16566 100644 --- a/tests/Converter/CakeValidationFactoryTest.php +++ b/tests/Converter/CakeValidationFactoryTest.php @@ -17,7 +17,7 @@ class CakeValidationFactoryTest extends TestCase * * @param ValidationResult $validationResult The result * - * @return array The array + * @return array The array */ private function getValidationResultAsArray(ValidationResult $validationResult): array { diff --git a/tests/Factory/CakeValidationFactoryTest.php b/tests/Factory/CakeValidationFactoryTest.php index 7628347..1701145 100644 --- a/tests/Factory/CakeValidationFactoryTest.php +++ b/tests/Factory/CakeValidationFactoryTest.php @@ -2,6 +2,7 @@ namespace Selective\Validation\Test\Factory; +use Cake\Validation\Validator; use PHPUnit\Framework\TestCase; use Selective\Validation\Factory\CakeValidationFactory; use Selective\Validation\ValidationError; @@ -18,9 +19,9 @@ class CakeValidationFactoryTest extends TestCase */ public function testCreateValidator() { - (new CakeValidationFactory())->createValidator(); + $validator = (new CakeValidationFactory())->createValidator(); - $this->assertTrue(true); + $this->assertInstanceOf(Validator::class, $validator); } /** @@ -111,7 +112,7 @@ public function testCreateResultFromErrorsSimple() * * @param ValidationError $error The error * - * @return array Data + * @return array Data */ private function toArray(ValidationError $error): array { diff --git a/tests/Middleware/MiddlewareTestTrait.php b/tests/Middleware/MiddlewareTestTrait.php index 6532b6e..0299bae 100644 --- a/tests/Middleware/MiddlewareTestTrait.php +++ b/tests/Middleware/MiddlewareTestTrait.php @@ -15,7 +15,7 @@ trait MiddlewareTestTrait /** * Run middleware stack. * - * @param array $queue The queue + * @param array $queue The queue * * @return ResponseInterface The response */ diff --git a/tests/TestService.php b/tests/TestService.php index 37b9ea0..50ae327 100644 --- a/tests/TestService.php +++ b/tests/TestService.php @@ -17,7 +17,7 @@ class TestService * * @throws ValidationException * - * @return array Result data + * @return array Result data */ public function process(int $id): array {