Skip to content

Commit 8972e86

Browse files
[FrameworkBundle] Add kernel.file_link_format to replace templating.helper.code.file_link_format
1 parent b835ab1 commit 8972e86

File tree

15 files changed

+60
-50
lines changed

15 files changed

+60
-50
lines changed

src/Symfony/Bundle/DebugBundle/DependencyInjection/Compiler/DumpDataCollectorPass.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,6 @@ public function process(ContainerBuilder $container)
3333

3434
$definition = $container->getDefinition('data_collector.dump');
3535

36-
if ($container->hasParameter('templating.helper.code.file_link_format')) {
37-
$definition->replaceArgument(1, $container->getParameter('templating.helper.code.file_link_format'));
38-
}
39-
4036
if (!$container->hasParameter('web_profiler.debug_toolbar.mode') || WebDebugToolbarListener::DISABLED === $container->getParameter('web_profiler.debug_toolbar.mode')) {
4137
$definition->replaceArgument(3, null);
4238
}

src/Symfony/Bundle/DebugBundle/DependencyInjection/DebugExtension.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Symfony\Component\DependencyInjection\Extension\Extension;
1717
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
1818
use Symfony\Component\DependencyInjection\Reference;
19+
use Symfony\Component\VarDumper\Dumper\AbstractDumper;
1920

2021
/**
2122
* DebugExtension.
@@ -47,6 +48,11 @@ public function load(array $configs, ContainerBuilder $container)
4748
->replaceArgument(4, new Reference('var_dumper.cli_dumper'))
4849
;
4950
}
51+
52+
if (defined(AbstractDumper::class.'::DUMP_LIGHT_ARRAY')) {
53+
$container->getDefinition('var_dumper.cli_dumper')->replaceArgument(2, AbstractDumper::DUMP_LIGHT_ARRAY);
54+
$container->getDefinition('var_dumper.html_dumper')->replaceArgument(2, AbstractDumper::DUMP_LIGHT_ARRAY);
55+
}
5056
}
5157

5258
/**

src/Symfony/Bundle/DebugBundle/Resources/config/services.xml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
<service id="twig.extension.dump" class="Symfony\Bridge\Twig\Extension\DumpExtension" public="false">
99
<tag name="twig.extension" />
1010
<argument type="service" id="var_dumper.cloner" />
11+
<argument type="service" id="var_dumper.html_dumper" />
1112
</service>
1213

1314
<service id="data_collector.dump" class="Symfony\Component\HttpKernel\DataCollector\DumpDataCollector">
1415
<tag name="data_collector" id="dump" template="@Debug/Profiler/dump.html.twig" priority="240" />
1516
<argument type="service" id="debug.stopwatch" on-invalid="ignore" />
16-
<argument>null</argument><!-- %templating.helper.code.file_link_format% -->
17+
<argument>%kernel.file_link_format%</argument>
1718
<argument>%kernel.charset%</argument>
1819
<argument type="service" id="request_stack" />
1920
<argument>null</argument><!-- var_dumper.cli_dumper when debug.dump_destination is set -->
@@ -29,6 +30,17 @@
2930
<service id="var_dumper.cli_dumper" class="Symfony\Component\VarDumper\Dumper\CliDumper">
3031
<argument>null</argument><!-- debug.dump_destination -->
3132
<argument>%kernel.charset%</argument>
33+
<argument>0</argument> <!-- flags -->
34+
</service>
35+
<service id="var_dumper.html_dumper" class="Symfony\Component\VarDumper\Dumper\HtmlDumper" public="false">
36+
<argument>null</argument>
37+
<argument>%kernel.charset%</argument>
38+
<argument>0</argument> <!-- flags -->
39+
<call method="setDisplayOptions">
40+
<argument type="collection">
41+
<argument key="fileLinkFormat">%kernel.file_link_format%</argument>
42+
</argument>
43+
</call>
3244
</service>
3345
</services>
3446

src/Symfony/Bundle/DebugBundle/Tests/DependencyInjection/Compiler/DumpDataCollectorPassTest.php

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,6 @@
1919

2020
class DumpDataCollectorPassTest extends \PHPUnit_Framework_TestCase
2121
{
22-
public function testProcessWithFileLinkFormatParameter()
23-
{
24-
$container = new ContainerBuilder();
25-
$container->addCompilerPass(new DumpDataCollectorPass());
26-
$container->setParameter('templating.helper.code.file_link_format', 'file-link-format');
27-
28-
$definition = new Definition('Symfony\Component\HttpKernel\DataCollector\DumpDataCollector', array(null, null, null, null));
29-
$container->setDefinition('data_collector.dump', $definition);
30-
31-
$container->compile();
32-
33-
$this->assertSame('file-link-format', $definition->getArgument(1));
34-
}
35-
3622
public function testProcessWithoutFileLinkFormatParameter()
3723
{
3824
$container = new ContainerBuilder();

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,21 @@ public function load(array $configs, ContainerBuilder $container)
9090
$container->setParameter('kernel.trusted_proxies', $config['trusted_proxies']);
9191
$container->setParameter('kernel.default_locale', $config['default_locale']);
9292

93+
if (!$container->hasParameter('kernel.file_link_format')) {
94+
if (!$container->hasParameter('templating.helper.code.file_link_format')) {
95+
$links = array(
96+
'textmate' => 'txmt://open?url=file://%%f&line=%%l',
97+
'macvim' => 'mvim://open?url=file://%%f&line=%%l',
98+
'emacs' => 'emacs://open?url=file://%%f&line=%%l',
99+
'sublime' => 'subl://open?url=file://%%f&line=%%l',
100+
);
101+
$ide = $config['ide'];
102+
103+
$container->setParameter('templating.helper.code.file_link_format', str_replace('%', '%%', ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format')) ?: (isset($links[$ide]) ? $links[$ide] : $ide));
104+
}
105+
$container->setParameter('kernel.file_link_format', '%templating.helper.code.file_link_format%');
106+
}
107+
93108
if (!empty($config['test'])) {
94109
$loader->load('test.xml');
95110
}
@@ -120,7 +135,7 @@ public function load(array $configs, ContainerBuilder $container)
120135
}
121136

122137
if ($this->isConfigEnabled($container, $config['templating'])) {
123-
$this->registerTemplatingConfiguration($config['templating'], $config['ide'], $container, $loader);
138+
$this->registerTemplatingConfiguration($config['templating'], $container, $loader);
124139
}
125140

126141
$this->registerValidationConfiguration($config['validation'], $container, $loader);
@@ -431,11 +446,6 @@ private function registerDebugConfiguration(array $config, ContainerBuilder $con
431446
}
432447

433448
$definition->replaceArgument(4, $debug);
434-
435-
if ($container->hasParameter('templating.helper.code.file_link_format')) {
436-
$definition->replaceArgument(5, '%templating.helper.code.file_link_format%');
437-
}
438-
439449
$definition->replaceArgument(6, $debug);
440450
}
441451

@@ -553,25 +563,13 @@ private function registerRequestConfiguration(array $config, ContainerBuilder $c
553563
* Loads the templating configuration.
554564
*
555565
* @param array $config A templating configuration array
556-
* @param string $ide
557566
* @param ContainerBuilder $container A ContainerBuilder instance
558567
* @param XmlFileLoader $loader An XmlFileLoader instance
559568
*/
560-
private function registerTemplatingConfiguration(array $config, $ide, ContainerBuilder $container, XmlFileLoader $loader)
569+
private function registerTemplatingConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
561570
{
562571
$loader->load('templating.xml');
563572

564-
if (!$container->hasParameter('templating.helper.code.file_link_format')) {
565-
$links = array(
566-
'textmate' => 'txmt://open?url=file://%%f&line=%%l',
567-
'macvim' => 'mvim://open?url=file://%%f&line=%%l',
568-
'emacs' => 'emacs://open?url=file://%%f&line=%%l',
569-
'sublime' => 'subl://open?url=file://%%f&line=%%l',
570-
);
571-
572-
$container->setParameter('templating.helper.code.file_link_format', str_replace('%', '%%', ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format')) ?: (isset($links[$ide]) ? $links[$ide] : $ide));
573-
}
574-
575573
$container->setParameter('fragment.renderer.hinclude.global_template', $config['hinclude_default_template']);
576574

577575
if ($container->getParameter('kernel.debug')) {

src/Symfony/Bundle/FrameworkBundle/Resources/config/debug_prod.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<argument>-1</argument><!-- Log levels map for enabled error levels -->
1818
<argument>%debug.error_handler.throw_at%</argument>
1919
<argument>true</argument>
20-
<argument>null</argument><!-- %templating.helper.code.file_link_format% -->
20+
<argument>%kernel.file_link_format%</argument>
2121
<argument>true</argument>
2222
</service>
2323

src/Symfony/Bundle/FrameworkBundle/Resources/config/templating_php.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
<service id="templating.helper.code" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\CodeHelper">
4646
<tag name="templating.helper" alias="code" />
47-
<argument>%templating.helper.code.file_link_format%</argument>
47+
<argument>%kernel.file_link_format%</argument>
4848
<argument>%kernel.root_dir%</argument>
4949
<argument>%kernel.charset%</argument>
5050
</service>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ public function testFileLinkFormat()
359359
{
360360
$container = $this->createContainerFromFile('full');
361361

362-
$this->assertEquals('file%link%format', $container->getParameter('templating.helper.code.file_link_format'));
362+
$this->assertEquals('file%link%format', $container->getParameter('kernel.file_link_format'));
363363
}
364364

365365
public function testValidationAnnotations()

src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,6 @@ public function process(ContainerBuilder $container)
5555
$container->getDefinition('twig.extension.httpfoundation')->addTag('twig.extension');
5656
}
5757

58-
if ($container->hasParameter('templating.helper.code.file_link_format')) {
59-
$container->getDefinition('twig.extension.code')->replaceArgument(0, $container->getParameter('templating.helper.code.file_link_format'));
60-
}
61-
6258
if ($container->getParameter('kernel.debug')) {
6359
$container->getDefinition('twig.extension.profiler')->addTag('twig.extension');
6460
$container->getDefinition('twig.extension.debug')->addTag('twig.extension');

src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383

8484
<service id="twig.extension.code" class="Symfony\Bridge\Twig\Extension\CodeExtension" public="false">
8585
<tag name="twig.extension" />
86-
<argument /> <!-- %templating.helper.code.file_link_format% -->
86+
<argument>%kernel.file_link_format%</argument>
8787
<argument>%kernel.root_dir%</argument>
8888
<argument>%kernel.charset%</argument>
8989
</service>

src/Symfony/Bundle/TwigBundle/composer.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,12 @@
2424
},
2525
"require-dev": {
2626
"symfony/stopwatch": "~2.8|~3.0",
27-
"symfony/dependency-injection": "~2.8|~3.0",
2827
"symfony/expression-language": "~2.8|~3.0",
29-
"symfony/config": "~2.8|~3.0",
3028
"symfony/finder": "~2.8|~3.0",
3129
"symfony/routing": "~2.8|~3.0",
3230
"symfony/templating": "~2.8|~3.0",
3331
"symfony/yaml": "~2.8|~3.0",
34-
"symfony/framework-bundle": "~2.8|~3.0"
32+
"symfony/framework-bundle": "~3.2"
3533
},
3634
"autoload": {
3735
"psr-4": { "Symfony\\Bundle\\TwigBundle\\": "" },

src/Symfony/Bundle/WebProfilerBundle/Resources/config/profiler.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,18 @@
3434

3535
<service id="twig.extension.webprofiler" class="Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension" public="false">
3636
<tag name="twig.extension" />
37+
<argument type="service">
38+
<service class="Symfony\Component\VarDumper\Dumper\HtmlDumper">
39+
<argument>null</argument>
40+
<argument>%kernel.charset%</argument>
41+
<argument type="constant">Symfony\Component\VarDumper\Dumper\HtmlDumper::DUMP_LIGHT_ARRAY</argument>
42+
<call method="setDisplayOptions">
43+
<argument type="collection">
44+
<argument key="fileLinkFormat">%kernel.file_link_format%</argument>
45+
</argument>
46+
</call>
47+
</service>
48+
</argument>
3749
</service>
3850
</services>
3951
</container>

src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ protected function setUp()
5656
$this->container->setParameter('kernel.cache_dir', __DIR__);
5757
$this->container->setParameter('kernel.debug', false);
5858
$this->container->setParameter('kernel.root_dir', __DIR__);
59+
$this->container->setParameter('kernel.charset', 'UTF-8');
60+
$this->container->setParameter('kernel.file_link_format', null);
5961
$this->container->setParameter('profiler.class', array('Symfony\\Component\\HttpKernel\\Profiler\\Profiler'));
6062
$this->container->register('profiler', $this->getMockClass('Symfony\\Component\\HttpKernel\\Profiler\\Profiler'))
6163
->addArgument(new Definition($this->getMockClass('Symfony\\Component\\HttpKernel\\Profiler\\ProfilerStorageInterface')));

src/Symfony/Bundle/WebProfilerBundle/composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
"symfony/http-kernel": "~3.1",
2121
"symfony/polyfill-php70": "~1.0",
2222
"symfony/routing": "~2.8|~3.0",
23-
"symfony/twig-bridge": "~2.8|~3.0"
23+
"symfony/twig-bridge": "~2.8|~3.0",
24+
"symfony/var-dumper": "~3.2"
2425
},
2526
"require-dev": {
2627
"symfony/config": "~2.8|~3.0",

src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ public function collect(Request $request, Response $response, \Exception $except
149149
) {
150150
if ($response->headers->has('Content-Type') && false !== strpos($response->headers->get('Content-Type'), 'html')) {
151151
$this->dumper = new HtmlDumper('php://output', $this->charset);
152+
$this->dumper->setDisplayOptions(array('fileLinkFormat' => $this->fileLinkFormat));
152153
} else {
153154
$this->dumper = new CliDumper('php://output', $this->charset);
154155
}
@@ -198,6 +199,7 @@ public function getDumps($format, $maxDepthLimit = -1, $maxItemsPerDepth = -1)
198199

199200
if ('html' === $format) {
200201
$dumper = new HtmlDumper($data, $this->charset);
202+
$dumper->setDisplayOptions(array('fileLinkFormat' => $this->fileLinkFormat));
201203
} else {
202204
throw new \InvalidArgumentException(sprintf('Invalid dump format: %s', $format));
203205
}
@@ -234,6 +236,7 @@ public function __destruct()
234236

235237
if ('cli' !== PHP_SAPI && stripos($h[$i], 'html')) {
236238
$this->dumper = new HtmlDumper('php://output', $this->charset);
239+
$dumper->setDisplayOptions(array('fileLinkFormat' => $this->fileLinkFormat));
237240
} else {
238241
$this->dumper = new CliDumper('php://output', $this->charset);
239242
}

0 commit comments

Comments
 (0)