8000 Merge branch '3.0' into 3.1 · symfony/symfony@73ca90d · GitHub
[go: up one dir, main page]

Skip to content

Commit 73ca90d

Browse files
committed
Merge branch '3.0' into 3.1
* 3.0: [Console] SymfonyStyle: Fix alignment/prefixing of multi-line comments [Routing] Finish annotation loader taking a class constant as a beginning of a class name [Routing] Fix the annotation loader taking a class constant as a beginning of a class name
2 parents 8c65c0e + 7b7c9b8 commit 73ca90d

File tree

8 files changed

+73
-9
lines changed

8 files changed

+73
-9
lines changed

src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ protected function describeContainerDefinition(Definition $definition, array $op
331331
*/
332332
protected function describeContainerAlias(Alias $alias, array $options = array())
333333
{
334-
$options['output']->comment(sprintf("This service is an alias for the service <info>%s</info>\n", (string) $alias));
334+
$options['output']->comment(sprintf('This service is an alias for the service <info>%s</info>', (string) $alias));
335335
}
336336

337337
/**

src/Symfony/Component/Console/Style/SymfonyStyle.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,16 +170,18 @@ public function text($message)
170170
}
171171

172172
/**
173-
* {@inheritdoc}
173+
* Formats a command comment.
174+
*
175+
* @param string|array $message
174176
*/
175177
public function comment($message)
176178
{
177-
$this->autoPrependText();
178-
179179
$messages = is_array($message) ? array_values($message) : array($message);
180-
foreach ($messages as $message) {
181-
$this->writeln(sprintf(' // %s', $message));
180+
foreach ($messages as &$message) {
181+
$message = $this->getFormatter()->format($message);
182182
}
183+
184+
$this->block($messages, null, null, ' // ');
183185
}
184186

185187
/**
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
use Symfony\Component\Console\Input\InputInterface;
4+
use Symfony\Component\Console\Output\OutputInterface;
5+
use Symfony\Component\Console\Tests\Style\SymfonyStyleWithForcedLineLength;
6+
7+
//Ensure that all lines are aligned to the begin of the first one and start with '//' in a very long line comment
8+
return function (InputInterface $input, OutputInterface $output) {
9+
$output = new SymfonyStyleWithForcedLineLength($input, $output);
10+
$output->comment(
11+
'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis no 8000 strud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum'
12+
);
13+
};
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
// Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
3+
// aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
4+
// Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur
5+
// sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
6+

src/Symfony/Component/Console/Tests/Fixtures/Style/SymfonyStyle/output/output_5.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,8 @@ Lorem ipsum dolor sit amet
1111
consectetur adipiscing elit
1212

1313
Lorem ipsum dolor sit amet
14-
// Lorem ipsum dolor sit amet
15-
// consectetur adipiscing elit
14+
15+
// Lorem ipsum dolor sit amet
16+
//
17+
// consectetur adipiscing elit
18+

src/Symfony/Component/Routing/Loader/AnnotationFileLoader.php

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,24 @@ protected function findClass($file)
112112
}
113113

114114
if (T_CLASS === $token[0]) {
115-
$class = true;
115+
// Skip usage of ::class constant
116+
$isClassConstant = false;
117+
for ($j = $i - 1; $j > 0; --$j) {
118+
if (!isset($tokens[$j][1])) {
119+
break;
120+
}
121+
122+
if (T_DOUBLE_COLON === $tokens[$j][0]) {
123+
$isClassConstant = true;
124+
break;
125+
} elseif (!in_array($tokens[$j][0], array(T_WHITESPACE, T_DOC_COMMENT, T_COMMENT))) {
126+
break;
127+
}
128+
}
129+
130+
if (!$isClassConstant) {
131+
$class = true;
132+
}
116133
}
117134

118135
if (T_NAMESPACE === $token[0]) {
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace Symfony\Component\Routing\Tests\Fixtures\AnnotatedClasses;
4+
5+
trait FooTrait
6+
{
7+
public function doBar()
8+
{
9+
$baz = self::class;
10+
if (true) {
11+
}
12+
}
13+
}

src/Symfony/Component/Routing/Tests/Loader/AnnotationFileLoaderTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ public function testLoad()
3535
$this->loader->load(__DIR__.'/../Fixtures/AnnotatedClasses/FooClass.php');
3636
}
3737

38+
/**
39+
* @requires PHP 5.4
40+
*/
41+
public function testLoadTraitWithClassConstant()
42+
{
43+
$this->reader->expects($this->never())->method('getClassAnnotation');
44+
45+
$this->loader->load(__DIR__.'/../Fixtures/AnnotatedClasses/FooTrait.php');
46+
}
47+
3848
/**
3949
* @requires PHP 5.6
4050
*/

0 commit comments

Comments
 (0)
0