8000 Merge branch '2.8' · symfony/symfony@dda085e · GitHub
[go: up one dir, main page]

Skip to content

Commit dda085e

Browse files
Merge branch '2.8'
* 2.8: (63 commits) [Debug] Deprecate ExceptionHandler::createResponse [Debug] cleanup ExceptionHandlerTest Reordered the toolbar elements via service priorities bumped Symfony version to 2.7.4 Increased the z-index of .sf-toolbar-info Removed an unused media query updated VERSION for 2.7.3 updated CHANGELOG for 2.7.3 Redesigned "abbr" elements Restored the old behavior for toolbars with lots of elements Tweaks and bug fixes Added some upgrade notes about the new toolbar design fixed typo in translation keys Fix the return value on error for intl methods returning arrays Removed an useless CSS class and added styles for <hr> Added a new profiler_markup_version to improve BC of the new toolbar Fix merge Removed an unused import Reverted the feature to display different toolbar versions Minor JavaScript optimizations ... Conflicts: CHANGELOG-2.7.md UPGRADE-2.8.md src/Symfony/Bundle/FrameworkBundle/Resources/config/collectors.xml src/Symfony/Component/Debug/composer.json src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php
2 parents 23919ab + 3c10715 commit dda085e

File tree

63 files changed

+891
-609
lines changed
  • Debug
  • DependencyInjection
  • HttpKernel
  • Intl/ResourceBundle
  • Security
  • Validator/Resources/translations
  • VarDumper/Tests/Caster
  • Yaml
  • Some content is hidden

    Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

    63 files changed

    +891
    -609
    lines changed

    src/Symfony/Bundle/DebugBundle/Resources/views/Profiler/dump.html.twig

    Lines changed: 9 additions & 8 deletions
    Original file line numberDiff line numberDiff line change
    @@ -5,17 +5,17 @@
    55

    66
    {% if dumps_count %}
    77
    {% set icon %}
    8-
    <svg width="21" height="28" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0px" y="0px" viewBox="0 0 21 28" enable-background="new 0 0 21 28" xml:space="preserve"><path fill="#3F3F3F" d="M21 14h-1c-0.3-4.8-4.1-8.7-9-9V4h-1v1c-4.8 0.3-8.7 4.1-9 9H0v1h1c0.3 4.8 4.1 8.7 9 9v1h1v-1 c4.8-0.3 8.7-4.1 9-9h1V14z M11 22v-4h-1v4c-3.7-0.2-6.7-3.2-7-7h4v-1H3c0.2-3.7 3.2-6.7 7-7v4h1V7c3.7 0.2 6.7 3.2 7 7h-4v1h4 C17.7 18.7 14.7 21.7 11 22z"/></svg>
    9-
    <span class="sf-toolbar-status sf-toolbar-status-yellow">{{ dumps_count }}</span>
    8+
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" height="24" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
    9+
    <path fill="#AAAAAA" d="M12,22.6c-5.8,0-10.5-4.7-10.5-10.5C1.5,6.3,6.2,1.5,12,1.5s10.5,4.7,10.5,10.5C22.5,17.9,17.8,22.6,12,22.6z M12,4.5c-4.2,0-7.5,3.4-7.5,7.5c0,4.2,3.4,7.5,7.5,7.5s7.5-3.4,7.5-7.5C19.5,7.9,16.2,4.5,12,4.5z"/>
    10+
    <path fill="#AAAAAA" d="M12,9.1c-0.8,0-1.5-0.7-1.5-1.5v-6c0-0.8,0.7-1.5,1.5-1.5s1.5,0.7,1.5,1.5v6C13.5,8.4,12.8,9.1,12,9.1zM13.5,22.4v-6c0-0.8-0.7-1.5-1.5-1.5s-1.5,0.7-1.5,1.5v6c0,0.8,0.7,1.5,1.5,1.5S13.5,23.2,13.5,22.4z M23.9,12c0-0.8-0.7-1.5-1.5-1.5h-6c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5h6C23.2,13.5,23.9,12.8,23.9,12z M9.1,12c0-0.8-0.7-1.5-1.5-1.5h-6c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5h6C8.4,13.5,9.1,12.8,9.1,12z"/>
    11+
    </svg>
    12+
    <span class="sf-toolbar-value">{{ dumps_count }}</span>
    1013
    {% endset %}
    1114

    1215
    {% set text %}
    13-
    <div class="sf-toolbar-info-piece">
    14-
    <b>dump()</b>
    15-
    </div>
    1616
    {% for dump in collector.getDumps('html') %}
    1717
    <div class="sf-toolbar-info-piece">
    18-
    in
    18+
    <span>
    1919
    {% if dump.file %}
    2020
    {% set link = dump.file|file_link(dump.line) %}
    2121
    {% if link %}
    @@ -26,14 +26,15 @@
    2626
    {% else %}
    2727
    {{ dump.name }}
    2828
    {% endif %}
    29-
    line {{ dump.line }}:
    29+
    </span>
    30+
    <span class="sf-toolbar-file-line">line {{ dump.line }}</span>
    3031
    {{ dump.data|raw }}
    3132
    </div>
    3233
    {% endfor %}
    3334
    <img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" onload="var h = this.parentNode.innerHTML, rx=/<script>(.*?)<\/script>/g, s; while (s = rx.exec(h)) {eval(s[1]);};" />
    3435
    {% endset %}
    3536

    36-
    {% include '@WebProfiler/Profiler/toolbar_item.html.twig' with { 'link': true } %}
    37+
    {{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { 'link': true }) }}
    3738
    {% endif %}
    3839
    {% endblock %}
    3940

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

    Lines changed: 3 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -273,7 +273,8 @@ private function addSessionSection(ArrayNodeDefinition $rootNode)
    273273
    ->scalarNode('cookie_path')->end()
    274274
    ->scalarNode('cookie_domain')->end()
    275275
    ->booleanNode('cookie_secure')->end()
    276-
    ->booleanNode('cookie_httponly')->end()
    276+
    ->booleanNode('cookie_httponly')->defaultTrue()->end()
    277+
    ->booleanNode('use_cookies')->end()
    277278
    ->scalarNode('gc_divisor')->end()
    278279
    ->scalarNode('gc_probability')->defaultValue(1)->end()
    279280
    ->scalarNode('gc_maxlifetime')->end()
    @@ -513,6 +514,7 @@ private function addSerializerSection(ArrayNodeDefinition $rootNode)
    513514
    ->children()
    514515
    ->booleanNode('enable_annotations')->defaultFalse()->end()
    515516
    ->scalarNode('cache')->end()
    517+
    ->scalarNode('name_converter')->end()
    516518
    ->end()
    517519
    ->end()
    518520
    ->end()

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

    Lines changed: 5 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -396,7 +396,7 @@ private function registerSessionConfiguration(array $config, ContainerBuilder $c
    396396
    // session storage
    397397
    $container->setAlias('session.storage', $config['storage_id']);
    398398
    $options = array();
    399-
    foreach (array('name', 'cookie_lifetime', 'cookie_path', 'cookie_domain', 'cookie_secure', 'cookie_httponly', 'gc_maxlifetime', 'gc_probability', 'gc_divisor') as $key) {
    399+
    foreach (array('name', 'cookie_lifetime', 'cookie_path', 'cookie_domain', 'cookie_secure', 'cookie_httponly', 'use_cookies', 'gc_maxlifetime', 'gc_probability', 'gc_divisor') as $key) {
    400400
    if (isset($config[$key])) {
    401401
    $options[$key] = $config[$key];
    402402
    }
    @@ -970,6 +970,10 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
    970970
    1, new Reference($config['cache'])
    971971
    );
    972972
    }
    973+
    974+
    if ($config['name_converter']) {
    975+
    $container->getDefinition('serializer.normalizer.object')->replaceArgument(1, new Reference($config['name_converter']));
    976+
    }
    973977
    }
    974978

    975979
    /**

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

    Lines changed: 5 additions & 5 deletions
    Original file line numberDiff line numberDiff line change
    @@ -6,17 +6,17 @@
    66

    77
    <services>
    88
    <service id="data_collector.config" class="Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector" public="false">
    9-
    <tag name="data_collector" template="@WebProfiler/Collector/config.html.twig" id="config" priority="255" />
    9+
    <tag name="data_collector" template="@WebProfiler/Collector/config.html.twig" id="config" priority="-255" />
    1010
    <call method="setKernel"><argument type="service" id="kernel" on-invalid="ignore" /></call>
    1111
    </service>
    1212

    1313
    <service id="data_collector.request" class="Symfony\Component\HttpKernel\DataCollector\RequestDataCollector">
    1414
    <tag name="kernel.event_subscriber" />
    15-
    <tag name="data_collector" template="@WebProfiler/Collector/request.html.twig" id="request" priority="255" />
    15+
    <tag name="data_collector" template="@WebProfiler/Collector/request.html.twig" id="request" priority="260" />
    1616
    </service>
    1717

    1818
    <service id="data_collector.ajax" class="Symfony\Bundle\FrameworkBundle\DataCollector\AjaxDataCollector" public="false">
    19-
    <tag name="data_collector" template="@WebProfiler/Collector/ajax.html.twig" id="ajax" priority="255" />
    19+
    <tag name="data_collector" template="@WebProfiler/Collector/ajax.html.twig" id="ajax" priority="256" />
    2020
    </service>
    2121

    2222
    <service id="data_collector.exception" class="Symfony\Component\HttpKernel\DataCollector\ExceptionDataCollector" public="false">
    @@ -35,13 +35,13 @@
    3535
    </service>
    3636

    3737
    <service id="data_collector.time" class="Symfony\Component\HttpKernel\DataCollector\TimeDataCollector" public="false">
    38-
    <tag name="data_collector" template="@WebProfiler/Collector/time.html.twig" id="time" priority="255" />
    38+
    <tag name="data_collector" template="@WebProfiler/Collector/time.html.twig" id="time" priority="259" />
    3939
    <argument type="service" id="kernel" on-invalid="ignore" />
    4040
    <argument type="service" id="debug.stopwatch" on-invalid="ignore" />
    4141
    </service>
    4242

    4343
    <service id="data_collector.memory" class="Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector" public="false">
    44-
    <tag name="data_collector" template="@WebProfiler/Collector/memory.html.twig" id="memory" priority="255" />
    44+
    <tag name="data_collector" template="@WebProfiler/Collector/memory.html.twig" id="memory" priority="258" />
    4545
    </service>
    4646

    4747
    <service id="data_collector.router" class="Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector" >

    src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd

    Lines changed: 2 additions & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -107,6 +107,7 @@
    107107
    <xsd:attribute name="cookie-domain" type="xsd:string" />
    108108
    <xsd:attribute name="cookie-secure" type="xsd:boolean" />
    109109
    <xsd:attribute name="cookie-httponly" type="xsd:boolean" />
    110+
    <xsd:attribute name="use-cookies" type="xsd:boolean" />
    110111
    <xsd:attribute name="cache-limiter" type="xsd:string" />
    111112
    <xsd:attribute name="gc-maxlifetime" type="xsd:string" />
    112113
    <xsd:attribute name="gc-divisor" type="xsd:string" />
    @@ -203,5 +204,6 @@
    203204
    <xsd:attribute name="enabled" type="xsd:boolean" />
    204205
    <xsd:attribute name="cache" type="xsd:string" />
    205206
    <xsd:attribute name="enable-annotations" type="xsd:boolean" />
    207+
    <xsd:attribute name="name-converter" type="xsd:string" />
    206208
    </xsd:complexType>
    207209
    </xsd:schema>

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

    Lines changed: 4 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -19,7 +19,7 @@
    1919
    <!-- Normalizer -->
    2020
    <service id="serializer.normalizer.object" class="Symfony\Component\Serializer\Normalizer\ObjectNormalizer" public="false">
    2121
    <argument type="service" id="serializer.mapping.class_metadata_factory" />
    22-
    <argument>null</argument>
    22+
    <argument>null</argument> <!-- name converter -->
    2323
    <argument type="service" id="serializer.property_accessor" />
    2424

    2525
    <!-- Run after all custom serializers -->
    @@ -52,5 +52,8 @@
    5252
    <service id="serializer.encoder.json" class="Symfony\Component\Serializer\Encoder\JsonEncoder" public="false">
    5353
    <tag name="serializer.encoder" />
    5454
    </service>
    55+
    56+
    <!-- Name converter -->
    57+
    <service id="serializer.name_converter.camel_case_to_snake_case" class="Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter" public="false" />
    5558
    </services>
    5659
    </container>

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

    Lines changed: 8 additions & 2 deletions
    Original file line numberDiff line numberDiff line change
    @@ -32,7 +32,8 @@
    3232
    'cookie_path' => '/',
    3333
    'cookie_domain' => 'example.com',
    3434
    'cookie_secure' => true,
    35-
    'cookie_httponly' => true,
    35+
    'cookie_httponly' => false,
    36+
    'use_cookies' => true,
    3637
    'gc_maxlifetime' => 90000,
    3738
    'gc_divisor' => 108,
    3839
    'gc_probability' => 1,
    @@ -64,7 +65,12 @@
    6465
    'debug' => true,
    6566
    'file_cache_dir' => '%kernel.cache_dir%/annotations',
    6667
    ),
    67-
    'serializer' => array('enabled' => true),
    68+
    'serializer' => array(
    69+
    'enabled' => true,
    70+
    'enable_annotations' => true,
    71+
    'cache' => 'serializer.mapping.cache.apc',
    72+
    'name_converter' => 'serializer.name_converter.camel_case_to_snake_case',
    73+
    ),
    6874
    'ide' => 'file%%link%%format',
    6975
    'request' => array(
    7076
    'formats' => array(

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

    Lines changed: 2 additions & 2 deletions
    Original file line numberDiff line numberDiff line change
    @@ -14,7 +14,7 @@
    1414
    <framework:esi enabled="true" />
    1515
    <framework:profiler only-exceptions="true" enabled="false" />
    1616
    <framework:router resource="%kernel.root_dir%/config/routing.xml" type="xml" />
    17-
    <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" />
    17+
    <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="false" use-cookies="true" save-path="/path/to/sessions" />
    1818
    <framework:request>
    1919
    <framework:format name="csv">
    2020
    <framework:mime-type>text/csv</framework:mime-type>
    @@ -40,6 +40,6 @@
    4040
    </framework:translator>
    4141
    <framework:validation enabled="true" cache="apc" />
    4242
    <framework:annotations cache="file" debug="true" file-cache-dir="%kernel.cache_dir%/annotations" />
    43-
    <framework:serializer enabled="true" />
    43+
    <framework:serializer enabled="true" enable-annotations="true" cache="serializer.mapping.cache.apc" name-converter="serializer.name_converter.camel_case_to_snake_case" />
    4444
    </framework:config>
    4545
    </container>

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

    Lines changed: 7 additions & 2 deletions
    Original file line numberDiff line numberDiff line change
    @@ -24,7 +24,8 @@ framework:
    2424
    cookie_path: /
    2525
    cookie_domain: example.com< 10000 /div>
    2626
    cookie_secure: true
    27-
    cookie_httponly: true
    27+
    cookie_httponly: false
    28+
    use_cookies: true
    2829
    gc_probability: 1
    2930
    gc_divisor: 108
    3031
    gc_maxlifetime: 90000
    @@ -49,7 +50,11 @@ framework:
    4950
    cache: file
    5051
    debug: true
    5152
    file_cache_dir: %kernel.cache_dir%/annotations
    52-
    serializer: { enabled: true }
    53+
    serializer:
    54+
    enabled: true
    55+
    enable_annotations: true
    56+
    cache: serializer.mapping.cache.apc
    57+
    name_converter: serializer.name_converter.camel_case_to_snake_case
    5358
    ide: file%%link%%format
    5459
    request:
    5560
    formats:

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

    Lines changed: 9 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -149,7 +149,8 @@ public function testSession()
    149149
    $this->assertEquals('/', $options['cookie_path']);
    150150
    $this->assertEquals('example.com', $options['cookie_domain']);
    151151
    $this->assertTrue($options['cookie_secure']);
    152-
    $this->assertTrue($options['cookie_httponly']);
    152+
    $this->assertFalse($options['cookie_httponly']);
    153+
    $this->assertTrue($options['use_cookies']);
    153154
    $this->assertEquals(108, $options['gc_divisor']);
    154155
    $this->assertEquals(1, $options['gc_probability']);
    155156
    $this->assertEquals(90000, $options['gc_maxlifetime']);
    @@ -459,6 +460,13 @@ public function testSerializerEnabled()
    459460
    {
    460461
    $container = $this->createContainerFromFile('full');
    461462
    $this->assertTrue($container->has('serializer'));
    463+
    464+
    $argument = $container->getDefinition('serializer.mapping.chain_loader')->getArgument(0);
    465+
    466+
    $this->assertCount(1, $argument);
    467+
    $this->assertEquals('Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader', $argument[0]->getClass());
    468+
    $this->assertEquals(new Reference('serializer.mapping.cache.apc'), $container->getDefinition('serializer.mapping.class_metadata_factory')->getArgument(1));
    469+
    $this->assertEquals(new Reference('serializer.name_converter.camel_case_to_snake_case'), $container->getDefinition('serializer.normalizer.object')->getArgument(1));
    462470
    }
    463471

    464472
    public function testAssetHelperWhenAssetsAreEnabled()

    src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php

    Lines changed: 3 additions & 2 deletions
    Original file line numberDiff line numberDiff line change
    @@ -366,7 +366,7 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a
    366366
    $listeners[] = new Reference('security.access_listener');
    367367

    368368
    // Exception listener
    369-
    $exceptionListener = new Reference($this->createExceptionListener($container, $firewall, $id, $configuredEntryPoint ?: $defaultEntryPoint));
    369+
    $exceptionListener = new Reference($this->createExceptionListener($container, $firewall, $id, $configuredEntryPoint ?: $defaultEntryPoint, $firewall['stateless']));
    370370

    371371
    return array($matcher, $listeners, $exceptionListener);
    372372
    }
    @@ -551,12 +551,13 @@ private function getUserProviderId($name)
    551551
    return 'security.user.provider.concrete.'.$name;
    552552
    }
    553553

    554-
    private function createExceptionListener($container, $config, $id, $defaultEntryPoint)
    554+
    private function createExceptionListener($container, $config, $id, $defaultEntryPoint, $stateless)
    555555
    {
    556556
    $exceptionListenerId = 'security.exception_listener.'.$id;
    557557
    $listener = $container->setDefinition($exceptionListenerId, new DefinitionDecorator('security.exception_listener'));
    558558
    $listener->replaceArgument(3, $id);
    559559
    $listener->replaceArgument(4, null === $defaultEntryPoint ? null : new Reference($defaultEntryPoint));
    560+
    $listener->replaceArgument(8, $stateless);
    560561

    561562
    // access denied handler setup
    562563
    if (isset($config['access_denied_handler'])) {

    src/Symfony/Bundle/SecurityBundle/Resources/config/security_listeners.xml

    Lines changed: 1 addition & 0 deletions
    Original file line numberDiff line numberDiff line change
    @@ -199,6 +199,7 @@
    199199
    <argument>%security.access.denied_url%</argument>
    200200
    <argument type="service" id="security.access.denied_handler" on-invalid="null" />
    201201
    <argument type="service" id="logger" on-invalid="null" />
    202+
    <argument>false</argument> <!-- Stateless -->
    202203
    </service>
    203204

    204205
    <service id="security.authentication.switchuser_listener" class="Symfony\Component\Security\Http\Firewall\SwitchUserListener" public="false" abstract="true">

    0 commit comments

    Comments
     (0)
    0