Skip to content

Commit d7eaae6

Browse files
Merge branch '3.4' into 4.1
* 3.4: [Form] Hardened test suite for empty data Bump phpunit XSD version to 5.2 [Fwb][EventDispatcher][HttpKernel] Fix getClosureScopeClass usage to describe callables Add required key attribute
2 parents 5c8a020 + 1bc6dd0 commit d7eaae6

File tree

10 files changed

+30
-18
lines changed

10 files changed

+30
-18
lines changed

Console/Descriptor/JsonDescriptor.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -346,10 +346,9 @@ private function getCallableData($callable, array $options = array()): array
346346
}
347347
$data['name'] = $r->name;
348348

349-
$class = ($class = $r->getClosureThis()) ? \get_class($class) : null;
350-
if ($scopeClass = $r->getClosureScopeClass() ?: $class) {
351-
$data['class'] = $scopeClass;
352-
if (!$class) {
349+
if ($class = $r->getClosureScopeClass()) {
350+
$data['class'] = $class->name;
351+
if (!$r->getClosureThis()) {
353352
$data['static'] = true;
354353
}
355354
}

Console/Descriptor/MarkdownDescriptor.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -353,10 +353,9 @@ protected function describeCallable($callable, array $options = array())
353353
}
354354
$string .= "\n".sprintf('- Name: `%s`', $r->name);
355355

356-
$class = ($class = $r->getClosureThis()) ? \get_class($class) : null;
357-
if ($scopeClass = $r->getClosureScopeClass() ?: $class) {
358-
$string .= "\n".sprintf('- Class: `%s`', $class);
359-
if (!$class) {
356+
if ($class = $r->getClosureScopeClass()) {
357+
$string .= "\n".sprintf('- Class: `%s`', $class->name);
358+
if (!$r->getClosureThis()) {
360359
$string .= "\n- Static: yes";
361360
}
362361
}

Console/Descriptor/TextDescriptor.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -453,10 +453,7 @@ private function formatCallable($callable): string
453453
return 'Closure()';
454454
}
455455
if ($class = $r->getClosureScopeClass()) {
456-
return sprintf('%s::%s()', $class, $r->name);
457-
}
458-
if ($class = $r->getClosureThis()) {
459-
return sprintf('%s::%s()', \get_class($class), $r->name);
456+
return sprintf('%s::%s()', $class->name, $r->name);
460457
}
461458

462459
return $r->name.'()';

Console/Descriptor/XmlDescriptor.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -524,10 +524,9 @@ private function getCallableDocument($callable): \DOMDocument
524524
}
525525
$callableXML->setAttribute('name', $r->name);
526526

527-
$class = ($class = $r->getClosureThis()) ? \get_class($class) : null;
528-
if ($scopeClass = $r->getClosureScopeClass() ?: $class) {
529-
$callableXML->setAttribute('class', $class);
530-
if (!$class) {
527+
if ($class = $r->getClosureScopeClass()) {
528+
$callableXML->setAttribute('class', $class->name);
529+
if (!$r->getClosureThis()) {
531530
$callableXML->setAttribute('static', 'true');
532531
}
533532
}

Tests/Console/Descriptor/ObjectsProvider.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public static function getEventDispatchers()
155155

156156
public static function getCallables()
157157
{
158-
return array(
158+
$callables = array(
159159
'callable_1' => 'array_key_exists',
160160
'callable_2' => array('Symfony\\Bundle\\FrameworkBundle\\Tests\\Console\\Descriptor\\CallableClass', 'staticMethod'),
161161
'callable_3' => array(new CallableClass(), 'method'),
@@ -164,6 +164,12 @@ public static function getCallables()
164164
'callable_6' => function () { return 'Closure'; },
165165
'callable_7' => new CallableClass(),
166166
);
167+
168+
if (\PHP_VERSION_ID >= 70100) {
169+
$callables['callable_from_callable'] = \Closure::fromCallable(new CallableClass());
170+
}
171+
172+
return $callables;
167173
}
168174
}
169175

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "closure",
3+
"name": "__invoke",
4+
"class": "Symfony\\Bundle\\FrameworkBundle\\Tests\\Console\\Descriptor\\CallableClass"
5+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
2+
- Type: `closure`
3+
- Name: `__invoke`
4+
- Class: `Symfony\Bundle\FrameworkBundle\Tests\Console\Descriptor\CallableClass`
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Symfony\Bundle\FrameworkBundle\Tests\Console\Descriptor\CallableClass::__invoke()
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<callable type="closure" name="__invoke" class="Symfony\Bundle\FrameworkBundle\Tests\Console\Descriptor\CallableClass"/>

phpunit.xml.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22

33
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
4+
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/5.2/phpunit.xsd"
55
backupGlobals="false"
66
colors="true"
77
bootstrap="vendor/autoload.php"

0 commit comments

Comments
 (0)