10000 Truly disabled profiler in prod · symfony/symfony@f675dd8 · GitHub
[go: up one dir, main page]

Skip to content

Commit f675dd8

Browse files
dlsniperfabpot
authored andcommitted
Truly disabled profiler in prod
1 parent 3c90abf commit f675dd8
< 8000 div class="Box-sc-g0xbh4-0 prc-PageLayout-HorizontalDivider-CYLp5 prc-PageLayout-HeaderHorizontalDivider-bofyb" data-variant="line" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)">

File tree

11 files changed

+191
-7
lines changed

11 files changed

+191
-7
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,11 @@ public function load(array $configs, ContainerBuilder $container)
9191
$this->registerValidationConfiguration($config['validation'], $container, $loader);
9292
$this->registerEsiConfiguration($config['esi'], $container, $loader);
9393
$this->registerFragmentsConfiguration($config['fragments'], $container, $loader);
94-
$this->registerProfilerConfiguration($config['profiler'], $container, $loader);
94+
95+
if (isset($config['profiler']) && isset($config['profiler']['enabled']) && $config['profiler']['enabled']) {
96+
$this->registerProfilerConfiguration($config['profiler'], $container, $loader);
97+
}
98+
9599
$this->registerTranslatorConfiguration($config['translator'], $container);
96100

97101
if (isset($config['router'])) {

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/full.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
),
1616
'profiler' => array(
1717
'only_exceptions' => true,
18-
'enabled' => false,
1918
),
2019
'router' => array(
2120
'resource' => '%kernel.root_dir%/config/routing.xml',
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', array(
4+
'secret' => 's3cr3t',
5+
'default_locale' => 'fr',
6+
'form' => null,
7+
'trust_proxy_headers' => true,
8+
'trusted_proxies' => array('127.0.0.1', '10.0.0.1'),
9+
'csrf_protection' => array(
10+
'enabled' => true,
11+
'field_name' => '_csrf',
12+
),
13+
'esi' => array(
14+
'enabled' => true,
15+
),
16+
'profiler' => array(
17+
'only_exceptions' => true,
18+
'enabled' => false,
19+
),
20+
'router' => array(
21+
'resource' => '%kernel.root_dir%/config/routing.xml',
22+
'type' => 'xml',
23+
),
24+
'session' => array(
25+
'storage_id' => 'session.storage.native',
26+
'handler_id' => 'session.handler.native_file',
27+
'name' => '_SYMFONY',
28+
'lifetime' => 86400,
29+
'path' => '/',
30+
'domain' => 'example.com',
31+
'secure' => true,
32+
'httponly' => true,
33+
'gc_maxlifetime' => 90000,
34+
'gc_divisor' => 108,
35+
'gc_probability' => 1,
36+
'save_path' => '/path/to/sessions',
37+
),
38+
'templating' => array(
39+
'assets_version' => 'SomeVersionScheme',
40+
'assets_base_urls' => 'http://cdn.example.com',
41+
'cache' => '/path/to/cache',
42+
'engines' => array('php', 'twig'),
43+
'loader' => array('loader.foo', 'loader.bar'),
44+
'packages' => array(
45+
'images' => array(
46+
'version' => '1.0.0',
47+
'base_urls' => array('http://images1.example.com', 'http://images2.example.com'),
48+
),
49+
'foo' => array(
50+
'version' => '1.0.0',
51+
),
52+
'bar' => array(
53+
'base_urls' => array('http://bar1.example.com', 'http://bar2.example.com'),
54+
),
55+
),
56+
'form' => array(
57+
'resources' => array('theme1', 'theme2')
58+
),
59+
),
60+
'translator' => array(
61+
'enabled' => true,
62+
'fallback' => 'fr',
63+
),
64+
'validation' => array(
65+
'enabled' => true,
66+
'cache' => 'apc',
67+
),
68+
'annotations' => array(
69+
'cache' => 'file',
70+
'debug' => true,
71+
'file_cache_dir' => '%kernel.cache_dir%/annotations',
72+
),
73+
'ide' => 'file%%link%%format'
74+
));

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/full.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<framework:csrf-protection enabled="true" field-name="_csrf" />
1111
<framework:form />
1212
<framework:esi enabled="true" />
13-
<framework:profiler only-exceptions="true" enabled="false" />
13+
<framework:profiler only-exceptions="true" />
1414
<framework:router resource="%kernel.root_dir%/config/routing.xml" type="xml" />
1515
<framework:session gc-maxlifetime="90000" gc-probability="1" gc-divisor="108" storage-id="session.storage.native" handler-id="session.handler.native_file" name="_SYMFONY" cookie-lifetime="86400" cookie-path="/" cookie-domain="example.com" cookie-secure="true" cookie-httponly="true" save-path="/path/to/sessions" />
1616
<framework:templating assets-version="SomeVersionScheme" cache="/path/to/cache" >
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" ?>
2+
3+
<container xmlns="http://symfony.com/schema/dic/services"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xmlns:framework="http://symfony.com/schema/dic/symfony"
6+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
7+
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
8+
9+
<framework:config secret="s3cr3t" ide="file%%link%%format" default-locale="fr" trust-proxy-headers="true" trusted-proxies="127.0.0.1, 10.0.0.1">
10+
<framework:csrf-protection enabled="true" field-name="_csrf" />
11+
<framework:form />
12+
<framework:esi enabled="true" />
13+
<framework:profiler only-exceptions="true" enabled="false" />
14+
<framework:router resource="%kernel.root_dir%/config/routing.xml" type="xml" />
15+
<framework:session gc-maxlifetime="90000" gc-probability="1" gc-divisor="108" storage-id="session.storage.native" handler-id="session.handler.native_file" name="_SYMFONY" cookie-lifetime="86400" cookie-path="/" cookie-domain="example.com" cookie-secure="true" cookie-httponly="true" save-path="/path/to/sessions" />
16+
<framework:templating assets-version="SomeVersionScheme" cache="/path/to/cache" >
17+
<framework:loader>loader.foo</framework:loader>
18+
<framework:loader>loader.bar</framework:loader>
19+
<framework:engine>php</framework:engine>
20+
<framework:engine>twig</framework:engine>
21+
<framework:assets-base-url>http://cdn.example.com</framework:assets-base-url>
22+
<framework:package name="images" version="1.0.0">
23+
<framework:base-url>http://images1.example.com</framework:base-url>
24+
<framework:base-url>http://images2.example.com</framework:base-url>
25+
</framework:package>
26+
<framework:package name="foo" version="1.0.0" />
27+
<framework:package name="bar">
28+
<framework:base-url>http://bar1.example.com</framework:base-url>
29+
<framework:base-url>http://bar2.example.com</framework:base-url>
30+
</framework:package>
31+
<framework:form>
32+
<framework:resource>theme1</framework:resource>
33+
<framework:resource>theme2</framework:resource>
34+
</framework:form>
35+
</framework:templating>
36+
<framework:translator enabled="true" fallback="fr" />
37+
<framework:validation enabled="true" cache="apc" />
38+
<framework:annotations cache="file" debug="true" file-cache-dir="%kernel.cache_dir%/annotations" />
39+
</framework:config>
40+
</container>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/full.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ framework:
1111
enabled: true
1212
profiler:
1313
only_exceptions: true
14-
enabled: false
1514
router:
1615
resource: %kernel.root_dir%/config/routing.xml
1716
type: xml
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
framework:
2+
secret: s3cr3t
3+
default_locale: fr
4+
form: ~
5+
trust_proxy_headers: true
6+
trusted_proxies: ['127.0.0.1', '10.0.0.1']
7+
csrf_protection:
8+
enabled: true
9+
field_name: _csrf
10+
esi:
11+
enabled: true
12+
profiler:
13+
only_exceptions: true
14+
enabled: false
15+
router:
16+
resource: %kernel.root_dir%/config/routing.xml
17+
type: xml
18+
session:
19+
storage_id: session.storage.native
20+
handler_id: session.handler.native_file
21+
name: _SYMFONY
22+
lifetime: 86400
23+
path: /
24+
domain: example.com
25+
secure: true
26+
httponly: true
27+
gc_probability: 1
28+
gc_divisor: 108
29+
gc_maxlifetime: 90000
30+
save_path: /path/to/sessions
< 10000 /td>
31+
templating:
32+
assets_version: SomeVersionScheme
33+
assets_base_urls: http://cdn.example.com
34+
engines: [php, twig]
35+
loader: [loader.foo, loader.bar]
36+
cache: /path/to/cache
37+
packages:
38+
images:
39+
version: 1.0.0
40+
base_urls: ["http://images1.example.com", "http://images2.example.com"]
41+
foo:
42+
version: 1.0.0
43+
bar:
44+
base_urls: ["http://images1.example.com", "http://images2.example.com"]
45+
form:
46+
resources: [theme1, theme2]
47+
translator:
48+
enabled: true
49+
fallback: fr
50+
validation:
51+
enabled: true
52+
cache: apc
53+
annotations:
54+
cache: file
55+
debug: true
56+
file_cache_dir: %kernel.cache_dir%/annotations
57+
ide: file%%link%%format

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,15 @@ public function testProfiler()
6262
$this->assertTrue($container->hasDefinition('data_collector.config'), '->registerProfilerConfiguration() loads collectors.xml');
6363
$this->assertTrue($container->getParameter('profiler_listener.only_exceptions'));
6464
$this->assertEquals('%profiler_listener.only_exceptions%', $container->getDefinition('profiler_listener')->getArgument(2));
65+
}
66+
67+
public function testDisabledProfiler()
68+
{
69+
$container = $this->createContainerFromFile('full_disabled');
6570

66-
$calls = $container->getDefinition('profiler')->getMethodCalls();
67-
$this->assertEquals('disable', $calls[0][0]);
71+
$this->assertFalse($container->hasDefinition('profiler'), '->registerProfilerConfiguration() does not load profiling.xml');
72+
$this->assertFalse($container->hasDefinition('data_collector.config'), '->registerProfilerConfiguration() does not load collectors.xml');
73+
$this->assertFalse($container->hasParameter('profiler_listener.only_exceptions'));
6874
}
6975

7076
public function testRouter()

src/Symfony/Bundle/FrameworkBundle/Tests/Functional/ProfilerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public function testProfilerIsDisabled($insulate)
3333
$client->enableProfiler();
3434
$crawler = $client->request('GET', '/profiler');
3535
$profile = $client->getProfile();
36-
$this->assertTrue(is_object($profile));
36+
$this->assertFalse(is_object($profile));
3737

3838
$client->request('GET', '/profiler');
3939
$this->assertFalse($client->getProfile());

src/Symfony/Bundle/WebProfilerBundle/DependencyInjection/WebProfilerExtension.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ class WebProfilerExtension extends Extension
3939
*/
4040
public function load(array $configs, ContainerBuilder $container)
4141
{
42+
if (!$container->hasParameter('profiler.class')) {
43+
return;
44+
}
45+
4246
$configuration = $this->getConfiguration($configs, $container);
4347
$config = $this->processConfiguration($configuration, $configs);
4448

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ protected function setUp()
6161
$this->container->setParameter('kernel.cache_dir', __DIR__);
6262
$this->container->setParameter('kernel.debug', false);
6363
$this->container->setParameter('kernel.root_dir', __DIR__);
64+
$this->container->setParameter('profiler.class', array('Symfony\\Component\\HttpKernel\\Profiler\\Profiler'));
6465
$this->container->register('profiler', $this->getMockClass('Symfony\\Component\\HttpKernel\\Profiler\\Profiler'))
6566
->addArgument(new Definition($this->getMockClass('Symfony\\Component\\HttpKernel\\Profiler\\ProfilerStorageInterface')));
6667
$this->container->setParameter('data_collector.templates', array());

0 commit comments

Comments
 (0)
0