Merge branch '2.7' into 2.8
* 2.7: [DI] use assertStringEqualsFile when possible [VarDumper] Adapt to php 7.2 changes [Form][TwigBridge] Don't render _method in form_rest() for a child form [Validator] Fix IbanValidator for ukrainian IBANs
This commit is contained in:
commit
17670e4986
@ -308,7 +308,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
{% if not form.methodRendered %}
|
{% if not form.methodRendered and form.parent is null %}
|
||||||
{%- do form.setMethodRendered() -%}
|
{%- do form.setMethodRendered() -%}
|
||||||
{% set method = method|upper %}
|
{% set method = method|upper %}
|
||||||
{%- if method in ["GET", "POST"] -%}
|
{%- if method in ["GET", "POST"] -%}
|
||||||
|
@ -119,13 +119,13 @@ class PhpDumperTest extends TestCase
|
|||||||
// without compilation
|
// without compilation
|
||||||
$container = include self::$fixturesPath.'/containers/container9.php';
|
$container = include self::$fixturesPath.'/containers/container9.php';
|
||||||
$dumper = new PhpDumper($container);
|
$dumper = new PhpDumper($container);
|
||||||
$this->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9.php')), $dumper->dump(), '->dump() dumps services');
|
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services9.php', str_replace(str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), '%path%', $dumper->dump()), '->dump() dumps services');
|
||||||
|
|
||||||
// with compilation
|
// with compilation
|
||||||
$container = include self::$fixturesPath.'/containers/container9.php';
|
$container = include self::$fixturesPath.'/containers/container9.php';
|
||||||
$container->compile();
|
$container->compile();
|
||||||
$dumper = new PhpDumper($container);
|
$dumper = new PhpDumper($container);
|
||||||
$this->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9_compiled.php')), $dumper->dump(), '->dump() dumps services');
|
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services9_compiled.php', str_replace(str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), '%path%', $dumper->dump()), '->dump() dumps services');
|
||||||
|
|
||||||
$dumper = new PhpDumper($container = new ContainerBuilder());
|
$dumper = new PhpDumper($container = new ContainerBuilder());
|
||||||
$container->register('foo', 'FooClass')->addArgument(new \stdClass());
|
$container->register('foo', 'FooClass')->addArgument(new \stdClass());
|
||||||
@ -145,7 +145,7 @@ class PhpDumperTest extends TestCase
|
|||||||
{
|
{
|
||||||
$container = include self::$fixturesPath.'/containers/container20.php';
|
$container = include self::$fixturesPath.'/containers/container20.php';
|
||||||
$dumper = new PhpDumper($container);
|
$dumper = new PhpDumper($container);
|
||||||
$this->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services20.php')), $dumper->dump(), '->dump() dumps services');
|
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services20.php', str_replace(str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), '%path%', $dumper->dump()), '->dump() dumps services');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testServicesWithAnonymousFactories()
|
public function testServicesWithAnonymousFactories()
|
||||||
|
@ -34,7 +34,7 @@ class IbanValidator extends ConstraintValidator
|
|||||||
* a BBAN (Basic Bank Account Number) which has a fixed length per country and,
|
* a BBAN (Basic Bank Account Number) which has a fixed length per country and,
|
||||||
* included within it, a bank identifier with a fixed position and a fixed length per country
|
* included within it, a bank identifier with a fixed position and a fixed length per country
|
||||||
*
|
*
|
||||||
* @see http://www.swift.com/dsp/resources/documents/IBAN_Registry.pdf
|
* @see https://www.swift.com/sites/default/files/resources/iban_registry.pdf
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
@ -130,7 +130,7 @@ class IbanValidator extends ConstraintValidator
|
|||||||
'TL' => 'TL\d{2}\d{3}\d{14}\d{2}', // Timor-Leste
|
'TL' => 'TL\d{2}\d{3}\d{14}\d{2}', // Timor-Leste
|
||||||
'TN' => 'TN59\d{2}\d{3}\d{13}\d{2}', // Tunisia
|
'TN' => 'TN59\d{2}\d{3}\d{13}\d{2}', // Tunisia
|
||||||
'TR' => 'TR\d{2}\d{5}[\dA-Z]{1}[\dA-Z]{16}', // Turkey
|
'TR' => 'TR\d{2}\d{5}[\dA-Z]{1}[\dA-Z]{16}', // Turkey
|
||||||
'UA' => 'UA\d{2}[A-Z]{6}[\dA-Z]{19}', // Ukraine
|
'UA' => 'UA\d{2}\d{6}[\dA-Z]{19}', // Ukraine
|
||||||
'VG' => 'VG\d{2}[A-Z]{4}\d{16}', // Virgin Islands, British
|
'VG' => 'VG\d{2}[A-Z]{4}\d{16}', // Virgin Islands, British
|
||||||
'WF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Wallis and Futuna Islands
|
'WF' => 'FR\d{2}\d{5}\d{5}[\dA-Z]{11}\d{2}', // Wallis and Futuna Islands
|
||||||
'XK' => 'XK\d{2}\d{4}\d{10}\d{2}', // Republic of Kosovo
|
'XK' => 'XK\d{2}\d{4}\d{10}\d{2}', // Republic of Kosovo
|
||||||
|
@ -118,7 +118,7 @@ class IbanValidatorTest extends AbstractConstraintValidatorTest
|
|||||||
|
|
||||||
//Extended country list
|
//Extended country list
|
||||||
//http://www.nordea.com/Our+services/International+products+and+services/Cash+Management/IBAN+countries/908462.html
|
//http://www.nordea.com/Our+services/International+products+and+services/Cash+Management/IBAN+countries/908462.html
|
||||||
// http://www.swift.com/dsp/resources/documents/IBAN_Registry.pdf
|
// https://www.swift.com/sites/default/files/resources/iban_registry.pdf
|
||||||
array('AO06000600000100037131174'), //Angola
|
array('AO06000600000100037131174'), //Angola
|
||||||
array('AZ21NABZ00000000137010001944'), //Azerbaijan
|
array('AZ21NABZ00000000137010001944'), //Azerbaijan
|
||||||
array('BH29BMAG1299123456BH00'), //Bahrain
|
array('BH29BMAG1299123456BH00'), //Bahrain
|
||||||
@ -156,6 +156,7 @@ class IbanValidatorTest extends AbstractConstraintValidatorTest
|
|||||||
array('TL380080012345678910157'), //Timor-Leste
|
array('TL380080012345678910157'), //Timor-Leste
|
||||||
array('TN5914207207100707129648'), //Tunisia
|
array('TN5914207207100707129648'), //Tunisia
|
||||||
array('TR330006100519786457841326'), //Turkey
|
array('TR330006100519786457841326'), //Turkey
|
||||||
|
array('UA213223130000026007233566001'), //Ukraine
|
||||||
array('AE260211000000230064016'), //United Arab Emirates
|
array('AE260211000000230064016'), //United Arab Emirates
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -268,6 +269,7 @@ class IbanValidatorTest extends AbstractConstraintValidatorTest
|
|||||||
array('TL3800800123456789101571'), //Timor-Leste
|
array('TL3800800123456789101571'), //Timor-Leste
|
||||||
array('TN59142072071007071296481'), //Tunisia
|
array('TN59142072071007071296481'), //Tunisia
|
||||||
array('TR3300061005197864578413261'), //Turkey
|
array('TR3300061005197864578413261'), //Turkey
|
||||||
|
array('UA21AAAA1300000260072335660012'), //Ukraine
|
||||||
array('AE2602110000002300640161'), //United Arab Emirates
|
array('AE2602110000002300640161'), //United Arab Emirates
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -377,6 +379,7 @@ class IbanValidatorTest extends AbstractConstraintValidatorTest
|
|||||||
array('TL380080012345678910158'), //Timor-Leste
|
array('TL380080012345678910158'), //Timor-Leste
|
||||||
array('TN5914207207100707129649'), //Tunisia
|
array('TN5914207207100707129649'), //Tunisia
|
||||||
array('TR330006100519786457841327'), //Turkey
|
array('TR330006100519786457841327'), //Turkey
|
||||||
|
array('UA213223130000026007233566002'), //Ukraine
|
||||||
array('AE260211000000230064017'), //United Arab Emirates
|
array('AE260211000000230064017'), //United Arab Emirates
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ class Caster
|
|||||||
if ($a) {
|
if ($a) {
|
||||||
$p = array_keys($a);
|
$p = array_keys($a);
|
||||||
foreach ($p as $i => $k) {
|
foreach ($p as $i => $k) {
|
||||||
if (isset($k[0]) && "\0" !== $k[0] && !$reflector->hasProperty($k)) {
|
if (isset($k[0]) ? "\0" !== $k[0] && !$reflector->hasProperty($k) : \PHP_VERSION_ID >= 70200) {
|
||||||
$p[$i] = self::PREFIX_DYNAMIC.$k;
|
$p[$i] = self::PREFIX_DYNAMIC.$k;
|
||||||
} elseif (isset($k[16]) && "\0" === $k[16] && 0 === strpos($k, "\0class@anonymous\0")) {
|
} elseif (isset($k[16]) && "\0" === $k[16] && 0 === strpos($k, "\0class@anonymous\0")) {
|
||||||
$p[$i] = "\0".$reflector->getParentClass().'@anonymous'.strrchr($k, "\0");
|
$p[$i] = "\0".$reflector->getParentClass().'@anonymous'.strrchr($k, "\0");
|
||||||
|
@ -143,8 +143,22 @@ EOTXT
|
|||||||
$var[] = &$v;
|
$var[] = &$v;
|
||||||
$var[''] = 2;
|
$var[''] = 2;
|
||||||
|
|
||||||
$this->assertDumpMatchesFormat(
|
if (\PHP_VERSION_ID >= 70200) {
|
||||||
<<<'EOTXT'
|
$this->assertDumpMatchesFormat(
|
||||||
|
<<<'EOTXT'
|
||||||
|
array:4 [
|
||||||
|
0 => {}
|
||||||
|
1 => &1 null
|
||||||
|
2 => &1 null
|
||||||
|
"" => 2
|
||||||
|
]
|
||||||
|
EOTXT
|
||||||
|
,
|
||||||
|
$var
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->assertDumpMatchesFormat(
|
||||||
|
<<<'EOTXT'
|
||||||
array:4 [
|
array:4 [
|
||||||
"0" => {}
|
"0" => {}
|
||||||
"1" => &1 null
|
"1" => &1 null
|
||||||
@ -152,9 +166,10 @@ array:4 [
|
|||||||
"" => 2
|
"" => 2
|
||||||
]
|
]
|
||||||
EOTXT
|
EOTXT
|
||||||
,
|
,
|
||||||
$var
|
$var
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testObjectCast()
|
public function testObjectCast()
|
||||||
@ -162,16 +177,28 @@ EOTXT
|
|||||||
$var = (object) array(1 => 1);
|
$var = (object) array(1 => 1);
|
||||||
$var->{1} = 2;
|
$var->{1} = 2;
|
||||||
|
|
||||||
$this->assertDumpMatchesFormat(
|
if (\PHP_VERSION_ID >= 70200) {
|
||||||
<<<'EOTXT'
|
$this->assertDumpMatchesFormat(
|
||||||
|
<<<'EOTXT'
|
||||||
|
{
|
||||||
|
+"1": 2
|
||||||
|
}
|
||||||
|
EOTXT
|
||||||
|
,
|
||||||
|
$var
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$this->assertDumpMatchesFormat(
|
||||||
|
<<<'EOTXT'
|
||||||
{
|
{
|
||||||
+1: 1
|
+1: 1
|
||||||
+"1": 2
|
+"1": 2
|
||||||
}
|
}
|
||||||
EOTXT
|
EOTXT
|
||||||
,
|
,
|
||||||
$var
|
$var
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testClosedResource()
|
public function testClosedResource()
|
||||||
|
@ -203,7 +203,7 @@ object(Symfony\Component\VarDumper\Cloner\Data)#%i (4) {
|
|||||||
EOTXT;
|
EOTXT;
|
||||||
ob_start();
|
ob_start();
|
||||||
var_dump($clone);
|
var_dump($clone);
|
||||||
$this->assertStringMatchesFormat($expected, ob_get_clean());
|
$this->assertStringMatchesFormat(\PHP_VERSION_ID >= 70200 ? str_replace('"1"', '1', $expected) : $expected, ob_get_clean());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCaster()
|
public function testCaster()
|
||||||
|
Reference in New Issue
Block a user