Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add PHP82 + PSL2 Support #12

Merged
merged 1 commit into from
Nov 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/analyzers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
strategy:
matrix:
operating-system: [ubuntu-latest]
php-versions: ['8.0', '8.1']
php-versions: ['8.1', '8.2']
fail-fast: false
name: PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/code-style.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
strategy:
matrix:
operating-system: [ubuntu-latest]
php-versions: ['8.0', '8.1']
php-versions: ['8.1', '8.2']
fail-fast: false
name: PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
strategy:
matrix:
operating-system: [ubuntu-latest]
php-versions: ['8.0', '8.1']
php-versions: ['8.1', '8.2']
fail-fast: false
name: PHP ${{ matrix.php-versions }} @ ${{ matrix.operating-system }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .phive/phars.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<phive xmlns="https://phar.io/phive">
<phar name="psalm" version="^4.17" installed="4.17.0" location="./tools/psalm.phar" copy="true"/>
<phar name="php-cs-fixer" version="^3.3.2" installed="3.3.2" location="./tools/php-cs-fixer.phar" copy="true"/>
<phar name="psalm" version="^4.30.0" installed="4.30.0" location="./tools/psalm.phar" copy="true"/>
<phar name="php-cs-fixer" version="^3.13.0" installed="3.13.0" location="./tools/php-cs-fixer.phar" copy="true"/>
</phive>
14 changes: 7 additions & 7 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@
}
],
"require": {
"php": "^8.0",
"php": "~8.1.0 || ~8.2.0",
"ext-soap": "*",
"ext-dom": "*",
"azjezz/psl": "^1.9",
"php-soap/engine": "^1.1",
"php-soap/wsdl": "^1.0",
"symfony/options-resolver": "^5.3 || ^6.0"
"azjezz/psl": "^2.1",
"php-soap/engine": "^1.3",
"php-soap/wsdl": "^1.3",
"symfony/options-resolver": "^5.4 || ^6.0"
},
"require-dev": {
"php-soap/engine-integration-tests": "^1.1",
"php-soap/xml": "^1.0",
"php-soap/engine-integration-tests": "^1.3",
"php-soap/xml": "^1.4",
"phpunit/phpunit": "^9.5"
}
}
2 changes: 1 addition & 1 deletion psalm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
errorLevel="2"
resolveFromConfigFile="true"
strictBinaryOperands="true"
phpVersion="8.0"
phpVersion="8.1"
allowStringToStandInForClass="true"
rememberPropertyAssignmentsAfterCall="false"
skipChecksOnUnresolvableIncludes="false"
Expand Down
3 changes: 3 additions & 0 deletions src/Configuration/TypeConverter/DateTimeTypeConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ public function getTypeName(): string
return 'dateTime';
}

/**
* @param non-empty-string $xml
*/
public function convertXmlToPhp(string $xml)
{
$doc = new DOMDocument();
Expand Down
3 changes: 3 additions & 0 deletions src/Configuration/TypeConverter/DateTypeConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ public function getTypeName(): string
return 'date';
}

/**
* @param non-empty-string $xml
*/
public function convertXmlToPhp(string $xml)
{
$doc = new DOMDocument();
Expand Down
3 changes: 3 additions & 0 deletions src/Configuration/TypeConverter/DecimalTypeConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public function getTypeName(): string
return 'decimal';
}

/**
* @param non-empty-string $xml
*/
public function convertXmlToPhp(string $xml)
{
$doc = new DOMDocument();
Expand Down
3 changes: 3 additions & 0 deletions src/Configuration/TypeConverter/DoubleTypeConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public function getTypeName(): string
return 'double';
}

/**
* @param non-empty-string $xml
*/
public function convertXmlToPhp(string $xml)
{
$doc = new DOMDocument();
Expand Down
2 changes: 0 additions & 2 deletions src/Configuration/TypeConverter/TypeConverterCollection.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ private function serialize(TypeConverterInterface $converter): string
*
* @param TypeConverterInterface $converter Type converter
*
* @return TypeConverterCollection
*/
public function add(TypeConverterInterface $converter): self
{
Expand All @@ -54,7 +53,6 @@ public function add(TypeConverterInterface $converter): self
*
* @param TypeConverterInterface $converter Type converter
*
* @return TypeConverterCollection
*/
public function set(TypeConverterInterface $converter): self
{
Expand Down
2 changes: 1 addition & 1 deletion src/Configuration/TypeConverter/TypeConverterInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function getTypeName(): string;
/**
* Convert given XML string to PHP type.
*
* @param string $xml XML string
* @param non-empty-string $xml XML string
*
* @return mixed
*/
Expand Down
11 changes: 5 additions & 6 deletions src/ExtSoapOptionsResolverFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Soap\ExtSoapEngine\Configuration\TypeConverter\TypeConverterInterface;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver;
use function Psl\Type\non_empty_string;

final class ExtSoapOptionsResolverFactory
{
Expand Down Expand Up @@ -128,12 +129,10 @@ static function (TypeConverterInterface $converter) {
return [
'type_name' => $converter->getTypeName(),
'type_ns' => $converter->getTypeNamespace(),
'from_xml' => static function (string $input) use ($converter): mixed {
return $converter->convertXmlToPhp($input);
},
'to_xml' => static function (mixed $input) use ($converter): string {
return $converter->convertPhpToXml($input);
},
'from_xml' => static fn (string $input): mixed => $converter->convertXmlToPhp(
non_empty_string()->coerce($input)
),
'to_xml' => static fn (mixed $input): string => $converter->convertPhpToXml($input),
];
},
iterator_to_array($value)
Expand Down
5 changes: 3 additions & 2 deletions src/Wsdl/PermanentWsdlLoaderProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@

namespace Soap\ExtSoapEngine\Wsdl;

use Psl\File\WriteMode;
use Soap\ExtSoapEngine\Wsdl\Naming\Md5Strategy;
use Soap\ExtSoapEngine\Wsdl\Naming\NamingStrategy;
use Soap\Wsdl\Loader\WsdlLoader;
use function Psl\File\write;
use function Psl\Filesystem\exists;
use function Psl\Filesystem\write_file;

final class PermanentWsdlLoaderProvider implements WsdlProvider
{
Expand All @@ -30,7 +31,7 @@ public function __invoke(string $location): string
return $file;
}

write_file($file, ($this->loader)($location));
write($file, ($this->loader)($location), WriteMode::TRUNCATE);

return $file;
}
Expand Down
5 changes: 3 additions & 2 deletions src/Wsdl/TemporaryWsdlLoaderProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@

namespace Soap\ExtSoapEngine\Wsdl;

use Psl\File\WriteMode;
use Soap\ExtSoapEngine\Wsdl\Naming\Md5Strategy;
use Soap\ExtSoapEngine\Wsdl\Naming\NamingStrategy;
use Soap\Wsdl\Loader\WsdlLoader;
use function Psl\Filesystem\write_file;
use function Psl\File\write;

final class TemporaryWsdlLoaderProvider implements WsdlProvider
{
Expand All @@ -23,7 +24,7 @@ public function __invoke(string $location): string
$namingStrategy = $this->namingStrategy ?? new Md5Strategy();
$file = $cacheDir . DIRECTORY_SEPARATOR . $namingStrategy($location);

write_file($file, ($this->loader)($location));
write($file, ($this->loader)($location), WriteMode::TRUNCATE);

return $file;
}
Expand Down
12 changes: 11 additions & 1 deletion tests/Integration/Engine/ExtSoapClientEngineTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use Soap\ExtSoapEngine\ExtSoapDriver;
use Soap\ExtSoapEngine\ExtSoapOptions;
use Soap\ExtSoapEngine\Transport\ExtSoapClientTransport;
use VCR\VCR;

final class ExtSoapClientEngineTest extends AbstractEngineTest
{
Expand All @@ -28,7 +29,16 @@ protected function getVcrPrefix(): string

protected function skipVcr(): bool
{
return false;
// @see https://github.com/php-soap/engine-integration-tests/issues/5
// Currently php-vcr is not in an OK shape. No support for PHP 81 and 82
// Better to take it out and replace it with something else!
// In the meantime, we cannot trust these tests.
return true;
}

public function test_it_should_be_possible_to_hook_php_vcr_for_testing()
{
static::markTestSkipped('VCR not working properly anymore');
}

protected function configureForWsdl(string $wsdl)
Expand Down
2 changes: 2 additions & 0 deletions tests/bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
define('FIXTURE_DIR', realpath(__DIR__ . '/fixtures'));
define('VCR_CASSETTE_DIR', realpath(__DIR__ . '/fixtures/vcr'));

/*
\VCR\VCR::configure()
->setCassettePath(VCR_CASSETTE_DIR)
->enableLibraryHooks(['soap', 'curl']);
VCR::turnOn();
*/
Binary file modified tools/php-cs-fixer.phar
Binary file not shown.
Binary file modified tools/psalm.phar
Binary file not shown.