Merge branch '4.3' into 4.4
* 4.3: fix deps=low [VarExporter] fix support for PHP 7.4 Use PHP 7.4 on deps=low
This commit is contained in:
commit
1981f06c88
11
.travis.yml
11
.travis.yml
|
@ -26,9 +26,10 @@ env:
|
|||
matrix:
|
||||
include:
|
||||
- php: 7.1
|
||||
- php: 7.2
|
||||
env: deps=high
|
||||
env: php_extra="7.2"
|
||||
- php: 7.3
|
||||
env: deps=high
|
||||
- php: 7.4snapshot
|
||||
env: deps=low
|
||||
fast_finish: true
|
||||
|
||||
|
@ -78,6 +79,12 @@ before_install:
|
|||
export COMPONENTS=$(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n')
|
||||
find ~/.phpenv -name xdebug.ini -delete
|
||||
|
||||
if [[ $TRAVIS_PHP_VERSION = 7.4* && $deps ]]; then
|
||||
export PHPUNIT_X="$PHPUNIT_X,issue-32995"
|
||||
elif [[ $TRAVIS_PHP_VERSION = 7.4* ]]; then
|
||||
export PHPUNIT_X="$PHPUNIT --group issue-32995"
|
||||
fi
|
||||
|
||||
nanoseconds () {
|
||||
local cmd="date"
|
||||
local format="+%s%N"
|
||||
|
|
|
@ -37,12 +37,12 @@
|
|||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/validator": "^3.4.31|^4.3.4|^5.0",
|
||||
"symfony/translation": "^3.4|^4.0|^5.0",
|
||||
"doctrine/annotations": "~1.0",
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.6",
|
||||
"doctrine/collections": "~1.0",
|
||||
"doctrine/data-fixtures": "1.0.*",
|
||||
"doctrine/dbal": "~2.4",
|
||||
"doctrine/orm": "^2.4.5",
|
||||
"doctrine/orm": "^2.6.3",
|
||||
"doctrine/reflection": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
"twig/twig": "^1.41|^2.10"
|
||||
},
|
||||
"require-dev": {
|
||||
"egulias/email-validator": "^2.0",
|
||||
"egulias/email-validator": "^2.1.10",
|
||||
"symfony/asset": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||
|
|
|
@ -21,6 +21,8 @@ use Symfony\Component\Validator\ValidatorBuilder;
|
|||
class ValidatorCacheWarmerTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testWarmUp()
|
||||
|
|
|
@ -30,10 +30,11 @@
|
|||
"symfony/routing": "^4.4|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.0",
|
||||
"symfony/asset": "^3.4|^4.0|^5.0",
|
||||
"symfony/browser-kit": "^4.3|^5.0",
|
||||
"symfony/console": "^4.3|^5.0",
|
||||
"symfony/console": "^4.3.4|^5.0",
|
||||
"symfony/css-selector": "^3.4|^4.0|^5.0",
|
||||
"symfony/dom-crawler": "^4.3|^5.0",
|
||||
"symfony/polyfill-intl-icu": "~1.0",
|
||||
|
@ -58,9 +59,8 @@
|
|||
"symfony/yaml": "^3.4|^4.0|^5.0",
|
||||
"symfony/property-info": "^3.4|^4.0|^5.0",
|
||||
"symfony/web-link": "^4.4|^5.0",
|
||||
"doctrine/annotations": "~1.0",
|
||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
|
||||
"twig/twig": "~1.34|~2.4"
|
||||
"twig/twig": "~1.41|~2.10"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<3.0",
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
"symfony/yaml": "^3.4|^4.0|^5.0",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"doctrine/doctrine-bundle": "~1.5",
|
||||
"twig/twig": "~1.34|~2.4"
|
||||
"twig/twig": "~1.41|~2.10"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/browser-kit": "<4.2",
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
"symfony/yaml": "^3.4|^4.0|^5.0",
|
||||
"symfony/framework-bundle": "^4.4|^5.0",
|
||||
"symfony/web-link": "^3.4|^4.0|^5.0",
|
||||
"doctrine/annotations": "~1.0",
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
|
|
|
@ -254,6 +254,8 @@ abstract class AdapterTestCase extends CachePoolTest
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testSavingObject()
|
||||
|
|
|
@ -76,6 +76,8 @@ EOF
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testBadParentWithTimestamp()
|
||||
|
@ -85,6 +87,8 @@ EOF
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testBadParentWithNoTimestamp()
|
||||
|
|
|
@ -350,6 +350,8 @@ class AutowirePassTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testParentClassNotFoundThrowsException()
|
||||
|
@ -626,6 +628,8 @@ class AutowirePassTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testIgnoreServiceWithClassNotExisting()
|
||||
|
@ -831,6 +835,8 @@ class AutowirePassTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testExceptionWhenAliasDoesNotExist()
|
||||
|
|
|
@ -62,6 +62,8 @@ class ResolveBindingsPassTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testMissingParent()
|
||||
|
|
|
@ -1099,6 +1099,8 @@ class PhpDumperTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testHotPathOptimizations()
|
||||
|
|
|
@ -107,6 +107,8 @@ class FileLoaderTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testRegisterClassesWithExclude()
|
||||
|
@ -139,6 +141,8 @@ class FileLoaderTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testRegisterClassesWithExcludeAsArray()
|
||||
|
@ -161,6 +165,8 @@ class FileLoaderTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testNestedRegisterClasses()
|
||||
|
@ -192,6 +198,8 @@ class FileLoaderTest extends TestCase
|
|||
}
|
||||
|
||||
/**
|
||||
* @group issue-32995
|
||||
*
|
||||
* @runInSeparateProcess https://github.com/symfony/symfony/issues/32995
|
||||
*/
|
||||
public function testMissingParentClass()
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
],
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"egulias/email-validator": "^2.0",
|
||||
"egulias/email-validator": "^2.1.10",
|
||||
"psr/log": "~1.0",
|
||||
"symfony/event-dispatcher": "^4.3",
|
||||
"symfony/mime": "^4.3.3|^5.0",
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
"symfony/polyfill-mbstring": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"egulias/email-validator": "^2.0",
|
||||
"egulias/email-validator": "^2.1.10",
|
||||
"symfony/dependency-injection": "^3.4|^4.1|^5.0"
|
||||
},
|
||||
"conflict": {
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
"symfony/cache": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"phpdocumentor/reflection-docblock": "^3.0|^4.0",
|
||||
"doctrine/annotations": "~1.0"
|
||||
"doctrine/annotations": "~1.7"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
|
||||
|
|
|
@ -35,11 +35,12 @@
|
|||
"symfony/property-access": "^3.4|^4.0|^5.0",
|
||||
"symfony/property-info": "^3.4|^4.0|^5.0",
|
||||
"symfony/translation": "^4.2",
|
||||
"doctrine/annotations": "~1.0",
|
||||
"doctrine/annotations": "~1.7",
|
||||
"doctrine/cache": "~1.0",
|
||||
"egulias/email-validator": "^1.2.8|~2.0"
|
||||
"egulias/email-validator": "^2.1.10"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/lexer": "<1.0.2",
|
||||
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/http-kernel": "<3.4",
|
||||
|
|
|
@ -155,7 +155,7 @@ class Exporter
|
|||
}
|
||||
$sleep[$n] = false;
|
||||
}
|
||||
if (!\array_key_exists($name, $proto) || $proto[$name] !== $v) {
|
||||
if (!\array_key_exists($name, $proto) || $proto[$name] !== $v || "\x00Error\x00trace" === $name || "\x00Exception\x00trace" === $name) {
|
||||
$properties[$c][$n] = $v;
|
||||
}
|
||||
}
|
||||
|
@ -291,7 +291,7 @@ class Exporter
|
|||
continue;
|
||||
}
|
||||
if (!Registry::$instantiableWithoutConstructor[$class]) {
|
||||
if (is_subclass_of($class, 'Serializable')) {
|
||||
if (is_subclass_of($class, 'Serializable') && !method_exists($class, '__unserialize')) {
|
||||
$serializables[$k] = 'C:'.\strlen($class).':"'.$class.'":0:{}';
|
||||
} else {
|
||||
$serializables[$k] = 'O:'.\strlen($class).':"'.$class.'":0:{}';
|
||||
|
|
|
@ -75,7 +75,7 @@ class Registry
|
|||
} elseif (!$isClass || $reflector->isAbstract()) {
|
||||
throw new NotInstantiableTypeException($class);
|
||||
} elseif ($reflector->name !== $class) {
|
||||
$reflector = self::$reflectors[$name = $reflector->name] ?? self::getClassReflector($name, $instantiableWithoutConstructor, $cloneable);
|
||||
$reflector = self::$reflectors[$name = $reflector->name] ?? self::getClassReflector($name, false, $cloneable);
|
||||
self::$cloneable[$class] = self::$cloneable[$name];
|
||||
self::$instantiableWithoutConstructor[$class] = self::$instantiableWithoutConstructor[$name];
|
||||
self::$prototypes[$class] = self::$prototypes[$name];
|
||||
|
@ -86,7 +86,7 @@ class Registry
|
|||
$proto = $reflector->newInstanceWithoutConstructor();
|
||||
$instantiableWithoutConstructor = true;
|
||||
} catch (\ReflectionException $e) {
|
||||
$proto = $reflector->implementsInterface('Serializable') && (\PHP_VERSION_ID < 70400 || !method_exists($class, '__unserialize')) ? 'C:' : 'O:';
|
||||
$proto = $reflector->implementsInterface('Serializable') && !method_exists($class, '__unserialize') ? 'C:' : 'O:';
|
||||
if ('C:' === $proto && !$reflector->getMethod('unserialize')->isInternal()) {
|
||||
$proto = null;
|
||||
} elseif (false === $proto = @unserialize($proto.\strlen($class).':"'.$class.'":0:{}')) {
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = [
|
||||
clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['ArrayIterator'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('ArrayIterator')),
|
||||
],
|
||||
null,
|
||||
[
|
||||
'ArrayIterator' => [
|
||||
"\0" => [
|
||||
[
|
||||
[
|
||||
123,
|
||||
],
|
||||
1,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
$o[0],
|
||||
[]
|
||||
);
|
|
@ -5,18 +5,15 @@ return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
|||
clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['ArrayIterator'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('ArrayIterator')),
|
||||
],
|
||||
null,
|
||||
[
|
||||
'ArrayIterator' => [
|
||||
"\0" => [
|
||||
[
|
||||
[
|
||||
123,
|
||||
],
|
||||
1,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
[],
|
||||
$o[0],
|
||||
[]
|
||||
[
|
||||
[
|
||||
1,
|
||||
[
|
||||
123,
|
||||
],
|
||||
[],
|
||||
],
|
||||
]
|
||||
);
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = [
|
||||
clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['Symfony\\Component\\VarExporter\\Tests\\MyArrayObject'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\MyArrayObject')),
|
||||
],
|
||||
null,
|
||||
[
|
||||
'ArrayObject' => [
|
||||
"\0" => [
|
||||
[
|
||||
[
|
||||
234,
|
||||
],
|
||||
1,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
$o[0],
|
||||
[]
|
||||
);
|
|
@ -5,18 +5,17 @@ return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
|||
clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['Symfony\\Component\\VarExporter\\Tests\\MyArrayObject'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\MyArrayObject')),
|
||||
],
|
||||
null,
|
||||
[],
|
||||
$o[0],
|
||||
[
|
||||
'ArrayObject' => [
|
||||
"\0" => [
|
||||
[
|
||||
[
|
||||
234,
|
||||
],
|
||||
1,
|
||||
],
|
||||
[
|
||||
1,
|
||||
[
|
||||
234,
|
||||
],
|
||||
[
|
||||
"\0".'Symfony\\Component\\VarExporter\\Tests\\MyArrayObject'."\0".'unused' => 123,
|
||||
],
|
||||
],
|
||||
],
|
||||
$o[0],
|
||||
[]
|
||||
]
|
||||
);
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = [
|
||||
clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['ArrayObject'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('ArrayObject')),
|
||||
clone $p['ArrayObject'],
|
||||
],
|
||||
null,
|
||||
[
|
||||
'ArrayObject' => [
|
||||
"\0" => [
|
||||
[
|
||||
[
|
||||
1,
|
||||
$o[0],
|
||||
],
|
||||
0,
|
||||
],
|
||||
],
|
||||
],
|
||||
'stdClass' => [
|
||||
'foo' => [
|
||||
$o[1],
|
||||
],
|
||||
],
|
||||
],
|
||||
$o[0],
|
||||
[]
|
||||
);
|
|
@ -6,24 +6,23 @@ return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
|||
clone $p['ArrayObject'],
|
||||
],
|
||||
null,
|
||||
[
|
||||
'ArrayObject' => [
|
||||
"\0" => [
|
||||
[
|
||||
[
|
||||
1,
|
||||
$o[0],
|
||||
],
|
||||
0,
|
||||
],
|
||||
],
|
||||
],
|
||||
'stdClass' => [
|
||||
'foo' => [
|
||||
$o[1],
|
||||
],
|
||||
],
|
||||
],
|
||||
[],
|
||||
$o[0],
|
||||
[]
|
||||
[
|
||||
[
|
||||
0,
|
||||
[
|
||||
1,
|
||||
$o[0],
|
||||
],
|
||||
[
|
||||
'foo' => $o[1],
|
||||
],
|
||||
],
|
||||
-1 => [
|
||||
0,
|
||||
[],
|
||||
[],
|
||||
],
|
||||
]
|
||||
);
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = \Symfony\Component\VarExporter\Internal\Registry::unserialize([], [
|
||||
'C:54:"Symfony\\Component\\VarExporter\\Tests\\FinalArrayIterator":49:{a:2:{i:0;i:123;i:1;s:21:"x:i:0;a:0:{};m:a:0:{}";}}',
|
||||
]),
|
||||
null,
|
||||
[],
|
||||
$o[0],
|
||||
[]
|
||||
);
|
|
@ -1,11 +1,17 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = \Symfony\Component\VarExporter\Internal\Registry::unserialize([], [
|
||||
'C:54:"Symfony\\Component\\VarExporter\\Tests\\FinalArrayIterator":49:{a:2:{i:0;i:123;i:1;s:21:"x:i:0;a:0:{};m:a:0:{}";}}',
|
||||
]),
|
||||
$o = [
|
||||
clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['Symfony\\Component\\VarExporter\\Tests\\FinalArrayIterator'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('Symfony\\Component\\VarExporter\\Tests\\FinalArrayIterator')),
|
||||
],
|
||||
null,
|
||||
[],
|
||||
$o[0],
|
||||
[]
|
||||
[
|
||||
[
|
||||
0,
|
||||
[],
|
||||
[],
|
||||
],
|
||||
]
|
||||
);
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = \Symfony\Component\VarExporter\Internal\Registry::unserialize([], [
|
||||
'O:46:"Symfony\\Component\\VarExporter\\Tests\\FinalError":1:{s:12:"'."\0".'Error'."\0".'trace";a:0:{}}',
|
||||
]),
|
||||
null,
|
||||
[
|
||||
'TypeError' => [
|
||||
'file' => [
|
||||
\dirname(__DIR__).\DIRECTORY_SEPARATOR.'VarExporterTest.php',
|
||||
],
|
||||
'line' => [
|
||||
123,
|
||||
],
|
||||
],
|
||||
'Error' => [
|
||||
'trace' => [
|
||||
[],
|
||||
],
|
||||
],
|
||||
],
|
||||
$o[0],
|
||||
[
|
||||
1 => 0,
|
||||
]
|
||||
);
|
|
@ -1,9 +1,9 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = \Symfony\Component\VarExporter\Internal\Registry::unserialize([], [
|
||||
'O:46:"Symfony\\Component\\VarExporter\\Tests\\FinalError":1:{s:12:"'."\0".'Error'."\0".'trace";a:0:{}}',
|
||||
]),
|
||||
$o = [
|
||||
(\Symfony\Component\VarExporter\Internal\Registry::$factories['Symfony\\Component\\VarExporter\\Tests\\FinalError'] ?? \Symfony\Component\VarExporter\Internal\Registry::f('Symfony\\Component\\VarExporter\\Tests\\FinalError'))(),
|
||||
],
|
||||
null,
|
||||
[
|
||||
'TypeError' => [
|
||||
|
@ -14,6 +14,11 @@ return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
|||
123,
|
||||
],
|
||||
],
|
||||
'Error' => [
|
||||
'trace' => [
|
||||
[],
|
||||
],
|
||||
],
|
||||
],
|
||||
$o[0],
|
||||
[
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
||||
$o = [
|
||||
clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['SplObjectStorage'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('SplObjectStorage')),
|
||||
clone ($p['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
|
||||
],
|
||||
null,
|
||||
[
|
||||
'SplObjectStorage' => [
|
||||
"\0" => [
|
||||
[
|
||||
$o[1],
|
||||
345,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
$o[0],
|
||||
[]
|
||||
);
|
|
@ -6,16 +6,15 @@ return \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
|
|||
clone ($p['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
|
||||
],
|
||||
null,
|
||||
[
|
||||
'SplObjectStorage' => [
|
||||
"\0" => [
|
||||
[
|
||||
$o[1],
|
||||
345,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
[],
|
||||
$o[0],
|
||||
[]
|
||||
[
|
||||
[
|
||||
[
|
||||
$o[1],
|
||||
345,
|
||||
],
|
||||
[],
|
||||
],
|
||||
]
|
||||
);
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
namespace Symfony\Component\VarExporter\Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use PHPUnit\Framework\Warning;
|
||||
use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
|
||||
use Symfony\Component\VarExporter\Internal\Registry;
|
||||
use Symfony\Component\VarExporter\VarExporter;
|
||||
|
@ -76,10 +75,6 @@ class VarExporterTest extends TestCase
|
|||
*/
|
||||
public function testExport(string $testName, $value, bool $staticValueExpected = false)
|
||||
{
|
||||
if (\PHP_VERSION_ID >= 70400 && \in_array($testName, ['spl-object-storage', 'array-object-custom', 'array-iterator', 'array-object', 'final-array-iterator'])) {
|
||||
throw new Warning('PHP 7.4 breaks this test.');
|
||||
}
|
||||
|
||||
$dumpedValue = $this->getDump($value);
|
||||
$isStaticValue = true;
|
||||
$marshalledValue = VarExporter::export($value, $isStaticValue);
|
||||
|
@ -91,7 +86,12 @@ class VarExporterTest extends TestCase
|
|||
|
||||
$dump = "<?php\n\nreturn ".$marshalledValue.";\n";
|
||||
$dump = str_replace(var_export(__FILE__, true), "\\dirname(__DIR__).\\DIRECTORY_SEPARATOR.'VarExporterTest.php'", $dump);
|
||||
$fixtureFile = __DIR__.'/Fixtures/'.$testName.'.php';
|
||||
|
||||
if (\PHP_VERSION_ID < 70400 && \in_array($testName, ['array-object', 'array-iterator', 'array-object-custom', 'spl-object-storage', 'final-array-iterator', 'final-error'], true)) {
|
||||
$fixtureFile = __DIR__.'/Fixtures/'.$testName.'-legacy.php';
|
||||
} else {
|
||||
$fixtureFile = __DIR__.'/Fixtures/'.$testName.'.php';
|
||||
}
|
||||
$this->assertStringEqualsFile($fixtureFile, $dump);
|
||||
|
||||
if ('incomplete-class' === $testName || 'external-references' === $testName) {
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
],
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"symfony/property-access": "^3.4|^4.0|^5.0"
|
||||
"symfony/property-access": "~3.4.31|^4.3.4|^5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
|
|
Reference in New Issue