diff --git a/.github/workflows/analyzers.yaml b/.github/workflows/analyzers.yaml index 50d7f5a..fbdbd31 100644 --- a/.github/workflows/analyzers.yaml +++ b/.github/workflows/analyzers.yaml @@ -7,7 +7,7 @@ jobs: strategy: matrix: operating-system: [ubuntu-latest] - php-versions: [ '8.2', '8.3' ] + php-versions: [ '8.3', '8.4', '8.5' ] composer-options: [ '--ignore-platform-req=php+' ] fail-fast: false name: PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }} @@ -23,4 +23,5 @@ jobs: - name: Install dependencies run: composer update --prefer-dist --no-progress --no-suggest ${{ matrix.composer-options }} - name: Run the tests - run: ./vendor/bin/psalm + run: ./vendor/bin/psalm --no-cache + continue-on-error: ${{ matrix.php-versions == '8.5' }} diff --git a/.github/workflows/code-style.yaml b/.github/workflows/code-style.yaml index 8600cb5..fb19bca 100644 --- a/.github/workflows/code-style.yaml +++ b/.github/workflows/code-style.yaml @@ -7,7 +7,7 @@ jobs: strategy: matrix: operating-system: [ubuntu-latest] - php-versions: [ '8.2', '8.3', '8.4' ] + php-versions: [ '8.3', '8.4', '8.5' ] composer-options: [ '--ignore-platform-req=php+' ] fail-fast: false name: PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }} @@ -23,4 +23,4 @@ jobs: - name: Install dependencies run: composer update --prefer-dist --no-progress --no-suggest ${{ matrix.composer-options }} - name: Run the tests - run: PHP_CS_FIXER_IGNORE_ENV=1 ./tools/php-cs-fixer.phar fix --dry-run + run: PHP_CS_FIXER_IGNORE_ENV=1 ./vendor/bin/php-cs-fixer fix --dry-run diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 82b0ab3..f8cde3d 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -7,7 +7,7 @@ jobs: strategy: matrix: operating-system: [ubuntu-latest] - php-versions: [ '8.2', '8.3', '8.4' ] + php-versions: [ '8.3', '8.4', '8.5' ] composer-options: [ '--ignore-platform-req=php+' ] dependency-preference: ['current', 'lowest', 'stable'] fail-fast: false @@ -25,4 +25,3 @@ jobs: run: composer update --prefer-dist --no-progress --no-suggest ${{ matrix.dependency-preference == 'lowest' && '--prefer-lowest' || '' }} ${{ matrix.dependency-preference == 'stable' && '--prefer-stable' || '' }} ${{ matrix.composer-options }} - name: Run the tests run: ./vendor/bin/phpunit - continue-on-error: ${{ matrix.php-versions == '8.4'}} diff --git a/.phive/phars.xml b/.phive/phars.xml deleted file mode 100644 index 4aa93da..0000000 --- a/.phive/phars.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/composer.json b/composer.json index 7171890..ebfacad 100644 --- a/composer.json +++ b/composer.json @@ -13,25 +13,26 @@ } }, "require": { - "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "php": "~8.3.0 || ~8.4.0 || ~8.5.0", "ext-dom": "*", "goetas-webservices/xsd-reader": "^0.4.11", - "php-soap/engine": "^2.13", - "php-soap/wsdl": "^1.10", - "php-soap/xml": "^1.8.0", + "php-soap/engine": "^2.16", + "php-soap/wsdl": "^1.14", + "php-soap/xml": "^1.9.0", "veewee/xml": "^3.0", - "azjezz/psl": "^3.0", + "azjezz/psl": "^3.0 || ^4.0", "symfony/console": "^5.4 || ^6.0 || ^7.0", "webmozart/assert": "^1.11", "php-tui/php-tui": "^0.2.1" }, "require-dev": { "symfony/var-dumper": "^6.1 || ^7.0", - "php-soap/engine-integration-tests": "^1.5.0", + "php-soap/engine-integration-tests": "^1.10.0", "psalm/plugin-symfony": "^5.0", "php-standard-library/psalm-plugin": "^2.2", - "vimeo/psalm": "^5.26", - "phpunit/phpunit": "^10.1" + "vimeo/psalm": "~6.13.0", + "phpunit/phpunit": "~12.4.0", + "php-cs-fixer/shim": "~3.88.0" }, "license": "MIT", "authors": [ diff --git a/phpunit.xml b/phpunit.xml index 43ed4e8..d93d93a 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,7 +1,8 @@ diff --git a/psalm.xml b/psalm.xml index 0666734..70f4db3 100644 --- a/psalm.xml +++ b/psalm.xml @@ -2,6 +2,8 @@ json_encode($value, JSON_UNESCAPED_SLASHES), + is_array($value) => encode($value, pretty: false, flags: JSON_UNESCAPED_SLASHES), is_bool($value) => $value ? 'true' : 'false', is_scalar($value) => (string)$value, $value instanceof Option => $value->map(self::tryStringifyValue(...))->unwrapOr(null), diff --git a/src/Console/UI/Components/ScrollableTextAreaState.php b/src/Console/UI/Components/ScrollableTextAreaState.php index 2a365b8..733a1d6 100644 --- a/src/Console/UI/Components/ScrollableTextAreaState.php +++ b/src/Console/UI/Components/ScrollableTextAreaState.php @@ -6,7 +6,7 @@ use PhpTui\Term\MouseEventKind; use Soap\WsdlReader\Console\UI\EventHandler; -use function json_encode; +use function Psl\Json\encode; use function Psl\Math\max; use function Psl\Math\min; @@ -21,7 +21,7 @@ public function __construct( public static function json(mixed $data, string $fallback): self { return new self( - $data !== null ? json_encode($data, JSON_PRETTY_PRINT + JSON_UNESCAPED_SLASHES) : $fallback, + $data !== null ? encode($data, pretty: true, flags: JSON_UNESCAPED_SLASHES) : $fallback, ); } diff --git a/src/Formatter/MetaTableFormatter.php b/src/Formatter/MetaTableFormatter.php index e28310c..4261e16 100644 --- a/src/Formatter/MetaTableFormatter.php +++ b/src/Formatter/MetaTableFormatter.php @@ -9,6 +9,7 @@ use Symfony\Component\Console\Helper\Table; use Symfony\Component\Console\Output\OutputInterface; use Throwable; +use function Psl\Json\encode; use function Psl\Vec\filter_nulls; use function Psl\Vec\map; @@ -56,7 +57,7 @@ private function tryStringifyValue(mixed $value): ?string { try { return match (true) { - is_array($value) => json_encode($value, JSON_PRETTY_PRINT), + is_array($value) => encode($value, pretty: true), is_bool($value) => $value ? 'true' : 'false', is_scalar($value) => (string)$value, $value instanceof Option => $value->map($this->tryStringifyValue(...))->unwrapOr(null), diff --git a/tests/PhpCompatibility/test_schema.inc b/tests/PhpCompatibility/test_schema.inc index df55202..683151d 100644 --- a/tests/PhpCompatibility/test_schema.inc +++ b/tests/PhpCompatibility/test_schema.inc @@ -8,7 +8,11 @@ use Soap\WsdlReader\Formatter\ShortMethodFormatter; use Soap\WsdlReader\Metadata\Wsdl1MetadataProvider; use Soap\WsdlReader\Wsdl1Reader; +// Avoid deprecated warnings to be displayed during the test output for the loaded dependencies. +// This is causing issues on lower dependencies. +$previousReporting = error_reporting(E_ALL ^ E_DEPRECATED); require_once __DIR__.'/../bootstrap.php'; +error_reporting($previousReporting); function test_schema($schema, $type, $style="rpc",$use="encoded", $attributeFormDefault='') { diff --git a/tests/Unit/Locator/Wsdl1SelectedServiceLocatorTest.php b/tests/Unit/Locator/Wsdl1SelectedServiceLocatorTest.php index 4625896..130e270 100644 --- a/tests/Unit/Locator/Wsdl1SelectedServiceLocatorTest.php +++ b/tests/Unit/Locator/Wsdl1SelectedServiceLocatorTest.php @@ -3,6 +3,7 @@ namespace Soap\WsdlReader\Test\Unit\Locator; use Closure; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Soap\Wsdl\Loader\StreamWrapperLoader; use Soap\WsdlReader\Exception\ServiceException; @@ -14,9 +15,7 @@ final class Wsdl1SelectedServiceLocatorTest extends TestCase { - /** - * @dataProvider provideServiceLocations - */ + #[DataProvider('provideServiceLocations')] public function test_it_can_locate_service( string $wsdl, ServiceSelectionCriteria $criteria, @@ -30,9 +29,7 @@ public function test_it_can_locate_service( $assert($service); } - /** - * @dataProvider provideNotLocatableServices - */ + #[DataProvider('provideNotLocatableServices')] public function test_it_can_not_locate_service( string $wsdl, ServiceSelectionCriteria $criteria, diff --git a/tests/Unit/Metadata/Coverter/Types/SoapEnc/ArrayTypeInfoTest.php b/tests/Unit/Metadata/Coverter/Types/SoapEnc/ArrayTypeInfoTest.php index 5356d67..17c05a1 100644 --- a/tests/Unit/Metadata/Coverter/Types/SoapEnc/ArrayTypeInfoTest.php +++ b/tests/Unit/Metadata/Coverter/Types/SoapEnc/ArrayTypeInfoTest.php @@ -4,15 +4,13 @@ namespace Soap\WsdlReader\Test\Unit\Metadata\Coverter\Types\SoapEnc; use InvalidArgumentException; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Soap\WsdlReader\Metadata\Converter\Types\SoapEnc\ArrayTypeInfo; final class ArrayTypeInfoTest extends TestCase { - /** - * - * @dataProvider provideSoap11ArrayTypes - */ + #[DataProvider('provideSoap11ArrayTypes')] public function test_it_can_parse_array_type_information_from_soap_11_information( string $raw, string $expectedPrefix, @@ -33,10 +31,7 @@ public function test_it_can_parse_array_type_information_from_soap_11_informatio static::assertSame($raw, $info->toString()); } - /** - * - * @dataProvider provideSoap12ArrayTypes - */ + #[DataProvider('provideSoap12ArrayTypes')] public function test_it_can_parse_array_type_information_from_soap_12_information( string $itemType, string $arraySize, diff --git a/tests/Unit/Metadata/Predicate/IsConsideredNullableTypeTest.php b/tests/Unit/Metadata/Predicate/IsConsideredNullableTypeTest.php index 0f04141..ee45daa 100644 --- a/tests/Unit/Metadata/Predicate/IsConsideredNullableTypeTest.php +++ b/tests/Unit/Metadata/Predicate/IsConsideredNullableTypeTest.php @@ -3,16 +3,14 @@ namespace Soap\WsdlReader\Test\Unit\Metadata\Predicate; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Soap\Engine\Metadata\Model\TypeMeta; use Soap\WsdlReader\Metadata\Predicate\IsConsideredNullableType; final class IsConsideredNullableTypeTest extends TestCase { - /** - * @dataProvider provideTests - * - */ + #[DataProvider('provideTests')] public function test_it_knows_if_a_type_is_considered_nullable(TypeMeta $meta, bool $expected): void { static::assertSame($expected, (new IsConsideredNullableType())($meta)); diff --git a/tests/Unit/Metadata/Predicate/IsConsideredScalarTypeTest.php b/tests/Unit/Metadata/Predicate/IsConsideredScalarTypeTest.php index e08bac5..b1e7bae 100644 --- a/tests/Unit/Metadata/Predicate/IsConsideredScalarTypeTest.php +++ b/tests/Unit/Metadata/Predicate/IsConsideredScalarTypeTest.php @@ -3,16 +3,14 @@ namespace Soap\WsdlReader\Test\Unit\Metadata\Predicate; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Soap\Engine\Metadata\Model\TypeMeta; use Soap\WsdlReader\Metadata\Predicate\IsConsideredScalarType; final class IsConsideredScalarTypeTest extends TestCase { - /** - * @dataProvider provideTests - * - */ + #[DataProvider('provideTests')] public function test_it_knows_if_a_type_is_considered_scalar(TypeMeta $meta, bool $expected): void { static::assertSame($expected, (new IsConsideredScalarType())($meta)); diff --git a/tests/Unit/Metadata/Predicate/IsOfTypeTest.php b/tests/Unit/Metadata/Predicate/IsOfTypeTest.php index 9566b09..fed706a 100644 --- a/tests/Unit/Metadata/Predicate/IsOfTypeTest.php +++ b/tests/Unit/Metadata/Predicate/IsOfTypeTest.php @@ -3,6 +3,7 @@ namespace Soap\WsdlReader\Test\Unit\Metadata\Predicate; +use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\TestCase; use Soap\Engine\Metadata\Model\TypeMeta; use Soap\Engine\Metadata\Model\XsdType; @@ -11,10 +12,7 @@ final class IsOfTypeTest extends TestCase { - /** - * @dataProvider provideTests - * - */ + #[DataProvider('provideTests')] public function test_it_knows_if_a_type_is_considered_nullable( string $namespace, string $name, diff --git a/tools/php-cs-fixer.phar b/tools/php-cs-fixer.phar deleted file mode 100755 index d071fa5..0000000 Binary files a/tools/php-cs-fixer.phar and /dev/null differ