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