From 3de61a58aaca8fce8cdaa0e112be8eff737661dc Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 10 Nov 2017 11:42:31 -0800 Subject: [PATCH 01/12] updated CHANGELOG for 2.7.36 --- CHANGELOG-2.7.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/CHANGELOG-2.7.md b/CHANGELOG-2.7.md index 4a58749b55582..d190ea2b7fd08 100644 --- a/CHANGELOG-2.7.md +++ b/CHANGELOG-2.7.md @@ -7,6 +7,37 @@ in 2.7 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.7.0...v2.7.1 +* 2.7.36 (2017-11-10) + + * bug #24888 [FrameworkBundle] Specifically inject the debug dispatcher in the collector (ogizanagi) + * bug #24909 [Intl] Update ICU data to 60.1 (jakzal) + * bug #24906 [Bridge/ProxyManager] Remove direct reference to value holder property (nicolas-grekas) + * bug #24900 [Validator] Fix Costa Rica IBAN format (Bozhidar Hristov) + * bug #24904 [Validator] Add Belarus IBAN format (Bozhidar Hristov) + * bug #24531 [HttpFoundation] Fix forward-compat of NativeSessionStorage with PHP 7.2 (sroze) + * bug #24814 [Intl] Make intl-data tests pass and save language aliases again (jakzal) + * bug #24764 [HttpFoundation] add Early Hints to Reponse to fix test (Simperfit) + * bug #24605 [FrameworkBundle] Do not load property_access.xml if the component isn't installed (ogizanagi) + * bug #24606 [HttpFoundation] Fix FileBag issue with associative arrays (enumag) + * bug #24660 Escape trailing \ in QuestionHelper autocompletion (kamazee) + * bug #24644 [Security] Fixed auth provider authenticate() cannot return void (glye) + * bug #24626 streamed response should return $this (DQNEO) + * bug #24589 Username and password in basic auth are allowed to contain '.' (Richard Quadling) + * bug #24566 Fixed unsetting from loosely equal keys OrderedHashMap (maryo) + * bug #24570 [Debug] Fix same vendor detection in class loader (Jean-Beru) + * bug #24563 [Serializer] ObjectNormalizer: throw if PropertyAccess isn't installed (dunglas) + * bug #24579 pdo session fix (mxp100) + * bug #24536 [Security] Reject remember-me token if UserCheckerInterface::checkPostAuth() fails (kbond) + * bug #24519 [Validator] [Twig] added magic method __isset() to File Constraint class (loru88) + * bug #24532 [DI] Fix possible incorrect php-code when dumped strings contains newlines (Strate) + * bug #24502 [HttpFoundation] never match invalid IP addresses (xabbuh) + * bug #24460 [Form] fix parsing invalid floating point numbers (xabbuh) + * bug #24490 [HttpFoundation] Combine Cache-Control headers (c960657) + * bug #23711 Fix support for PHP 7.2 (Simperfit, nicolas-grekas) + * bug #24494 [HttpFoundation] Add missing session.lazy_write config option (nicolas-grekas) + * bug #24434 [Form] Use for=ID on radio/checkbox label. (Nyholm) + * bug #24455 [Console] Escape command usage (sroze) + * 2.7.35 (2017-10-05) * bug #24448 [Session] fix MongoDb session handler to gc all expired sessions (Tobion) From 0f8757e2e8039d31125895f688cace69936a1f67 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 10 Nov 2017 11:42:39 -0800 Subject: [PATCH 02/12] update CONTRIBUTORS for 2.7.36 --- CONTRIBUTORS.md | 85 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 30 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 450e53dbc0947..0f3e9c22adf2d 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -13,8 +13,8 @@ Symfony is the result of the work of many people who made the code better - Jordi Boggiano (seldaek) - Victor Berchet (victor) - Johannes S (johannes) - - Kris Wallsmith (kriswallsmith) - Jakub Zalas (jakubzalas) + - Kris Wallsmith (kriswallsmith) - Kévin Dunglas (dunglas) - Ryan Weaver (weaverryan) - Javier Eguiluz (javier.eguiluz) @@ -30,8 +30,8 @@ Symfony is the result of the work of many people who made the code better - Karma Dordrak (drak) - Lukas Kahwe Smith (lsmith) - Martin Hasoň (hason) - - Jeremy Mikola (jmikola) - Roland Franssen (ro0) + - Jeremy Mikola (jmikola) - Jean-François Simon (jfsimon) - Benjamin Eberlei (beberlei) - Igor Wiedler (igorw) @@ -57,32 +57,32 @@ Symfony is the result of the work of many people who made the code better - Diego Saint Esteben (dii3g0) - Konstantin Kudryashov (everzet) - Bilal Amarni (bamarni) - - Florin Patan (florinpatan) + - Yonel Ceruto (yonelceruto) - Dany Maillard (maidmaid) - - Jérémy DERUSSÉ (jderusse) - Kevin Bond (kbond) - - Yonel Ceruto (yonelceruto) - - Gábor Egyed (1ed) + - Florin Patan (florinpatan) + - Jérémy DERUSSÉ (jderusse) - Pierre du Plessis (pierredup) - - Andrej Hudec (pulzarraider) + - Gábor Egyed (1ed) - Michel Weimerskirch (mweimerskirch) + - Andrej Hudec (pulzarraider) - Eric Clemmons (ericclemmons) + - Jáchym Toušek (enumag) - Charles Sarrazin (csarrazi) + - Alexander M. Turek (derrabus) - Konstantin Myakshin (koc) - Christian Raue - - Jáchym Toušek (enumag) - Arnout Boks (aboks) - Deni - - Alexander M. Turek (derrabus) - Henrik Westphal (snc) - Dariusz Górecki (canni) - Titouan Galopin (tgalopin) - Douglas Greenshields (shieldo) + - Tobias Nyholm (tobias) - Lee McDermott - Brandon Turner - Luis Cordova (cordoval) - Graham Campbell (graham) - - Tobias Nyholm (tobias) - Daniel Holmes (dholmes) - Toni Uebernickel (havvg) - Bart van den Burg (burgov) @@ -116,6 +116,7 @@ Symfony is the result of the work of many people who made the code better - Tomáš Votruba (tomas_votruba) - Fabien Pennequin (fabienpennequin) - Gordon Franke (gimler) + - David Maicher (dmaicher) - Eric GELOEN (gelo) - Daniel Wehner (dawehner) - Tugdual Saunier (tucksaun) @@ -132,9 +133,9 @@ Symfony is the result of the work of many people who made the code better - Daniel Gomes (danielcsgomes) - Hidenori Goto (hidenorigoto) - Guilherme Blanco (guilhermeblanco) - - David Maicher (dmaicher) - Pablo Godel (pgodel) - Jérémie Augustin (jaugustin) + - Grégoire Paris (greg0ire) - Andréia Bohner (andreia) - Rafael Dohms (rdohms) - Arnaud Kleinpeter (nanocom) @@ -143,8 +144,8 @@ Symfony is the result of the work of many people who made the code better - Joel Wurtz (brouznouf) - Jérôme Vasseur (jvasseur) - Oleg Voronkovich - - Grégoire Paris (greg0ire) - Philipp Wahala (hifi) + - Alex Pott - Vyacheslav Pavlov - Richard van Laak (rvanlaak) - Javier Spagnoletti (phansys) @@ -159,20 +160,24 @@ Symfony is the result of the work of many people who made the code better - Matthieu Ouellette-Vachon (maoueh) - Michał Pipa (michal.pipa) - Dawid Nowak + - Julien Falque (julienfalque) - Amal Raghav (kertz) - Jonathan Ingram (jonathaningram) - Artur Kotyrba + - GDIBass - jeremyFreeAgent (Jérémy Romey) (jeremyfreeagent) - James Halsall (jaitsu) - Chris Wilkinson (thewilkybarkid) - Warnar Boekkooi (boekkooi) - Dmitrii Chekaliuk (lazyhammer) - Clément JOBEILI (dator) + - Amrouche Hamza + - Samuel ROZE (sroze) + - Daniel Espendiller - Possum - Dorian Villet (gnutix) - Sergey Linnik (linniksa) - Richard Miller (mr_r_miller) - - Julien Falque (julienfalque) - Mario A. Alvarez Garcia (nomack84) - Dennis Benkert (denderello) - SpacePossum @@ -181,9 +186,9 @@ Symfony is the result of the work of many people who made the code better - Christian Schmidt - Andreas Hucks (meandmymonkey) - Noel Guilbert (noel) + - Marek Štípek (maryo) - Stepan Anchugov (kix) - bronze1man - - Daniel Espendiller - sun (sun) - Larry Garfield (crell) - Martin Schuhfuß (usefulthink) @@ -207,7 +212,6 @@ Symfony is the result of the work of many people who made the code better - Tom Van Looy (tvlooy) - Sven Paulus (subsven) - Rui Marinho (ruimarinho) - - Marek Štípek (maryo) - Eugene Wissner - Julien Brochet (mewt) - Tristan Darricau (nicofuma) @@ -243,8 +247,8 @@ Symfony is the result of the work of many people who made the code better - Kristen Gilden (kgilden) - Pierre-Yves LEBECQ (pylebecq) - Jordan Samouh (jordansamouh) - - Alex Pott - Jakub Kucharovic (jkucharovic) + - Valentin Udaltsov (vudaltsov) - Uwe Jäger (uwej711) - Eugene Leonovich (rybakit) - Filippo Tessarotto @@ -253,6 +257,7 @@ Symfony is the result of the work of many people who made the code better - GordonsLondon - Jan Sorgalla (jsor) - Ray + - Tyson Andre - Nikolay Labinskiy (e-moe) - Leo Feyer - Chekote @@ -261,6 +266,7 @@ Symfony is the result of the work of many people who made the code better - Jhonny Lidfors (jhonne) - Diego Agulló (aeoris) - Andreas Schempp (aschempp) + - DQNEO - jdhoek - Pavel Batanov (scaytrase) - Nikita Konstantinov @@ -281,7 +287,6 @@ Symfony is the result of the work of many people who made the code better - Michael Holm (hollo) - Marc Weistroff (futurecat) - Christian Schmidt - - Amrouche Hamza - Chad Sikorra (chadsikorra) - Chris Smith (cs278) - Florian Klein (docteurklein) @@ -341,7 +346,6 @@ Symfony is the result of the work of many people who made the code better - Terje Bråten - Robbert Klarenbeek (robbertkl) - Thomas Calvet (fancyweb) - - Valentin Udaltsov (vudaltsov) - Niels Keurentjes (curry684) - JhonnyL - David Badura (davidbadura) @@ -355,6 +359,7 @@ Symfony is the result of the work of many people who made the code better - Philipp Kräutli (pkraeutli) - Kirill chEbba Chebunin (chebba) - Greg Thornton (xdissent) + - Benoît Burnichon (bburnichon) - Costin Bereveanu (schniper) - Loïc Chardonnet (gnusat) - Marek Kalnik (marekkalnik) @@ -425,16 +430,17 @@ Symfony is the result of the work of many people who made the code better - Christoph Mewes (xrstf) - Vitaliy Tverdokhlib (vitaliytv) - Ariel Ferrandini (aferrandini) - - Samuel ROZE (sroze) - Dirk Pahl (dirkaholic) - cedric lombardot (cedriclombardot) - Jonas Flodén (flojon) - Thomas Perez (scullwm) + - Edi Modrić (emodric) - Marcin Sikoń (marphi) - Dominik Zogg (dominik.zogg) - Marek Pietrzak - Luc Vieillescazes (iamluc) - franek (franek) + - Artur Eshenbrener - Christian Wahler - Gintautas Miselis - Rob Bast @@ -448,15 +454,16 @@ Symfony is the result of the work of many people who made the code better - Fabrice Bernhard (fabriceb) - Jérôme Macias (jeromemacias) - Andrey Astakhov (aast) + - ReenExe - Fabian Lange (codingfabian) - Frank Neff (fneff) - Roman Lapin (memphys) - Yoshio HANAWA - Gladhon - - Benoît Burnichon (bburnichon) - Sebastian Bergmann - Miroslav Sustek - Pablo Díez (pablodip) + - Martin Hujer (martinhujer) - Kevin McBride - Sergio Santoro - Robin van der Vleuten (robinvdvleuten) @@ -515,6 +522,7 @@ Symfony is the result of the work of many people who made the code better - Martin Morávek (keeo) - Steven Surowiec - Kevin Saliou (kbsali) + - Shawn Iwinski - NothingWeAre - Ryan - Alexander Deruwe (aderuwe) @@ -588,10 +596,13 @@ Symfony is the result of the work of many people who made the code better - maxime.steinhausser - adev - Stefan Warman + - Arkadius Stefanski (arkadius) - Tristan Maindron (tmaindron) - Wesley Lancel - Ke WANG (yktd26) + - Ivo Bathke (ivoba) - Strate + - Anton A. Sumin - Miquel Rodríguez Telep (mrtorrent) - Sergey Kolodyazhnyy (skolodyazhnyy) - umpirski @@ -603,7 +614,6 @@ Symfony is the result of the work of many people who made the code better - Johann Saunier (prophet777) - Michael Devery (mickadoo) - Antoine Corcy - - Artur Eshenbrener - Sascha Grossenbacher - Szijarto Tamas - Catalin Dan @@ -616,6 +626,7 @@ Symfony is the result of the work of many people who made the code better - Cameron Porter - Hossein Bukhamsin - Oliver Hoff + - Christian Sciberras (uuf6429) - Martin Auswöger - Disparity - origaminal @@ -633,7 +644,6 @@ Symfony is the result of the work of many people who made the code better - Richard van den Brand (ricbra) - develop - VJ - - ReenExe - Mark Sonnabaum - Richard Quadling - jochenvdv @@ -648,7 +658,7 @@ Symfony is the result of the work of many people who made the code better - Julien DIDIER (juliendidier) - Dominik Ritter (dritter) - Sebastian Grodzicki (sgrodzicki) - - Martin Hujer (martinhujer) + - Jeroen van den Enden (stoefke) - Pascal Helfenstein - Baldur Rensch (brensch) - Vladyslav Petrovych @@ -703,10 +713,12 @@ Symfony is the result of the work of many people who made the code better - Ben - Vincent Composieux (eko) - Jayson Xu (superjavason) + - Hubert Lenoir (hubert_lenoir) - Jaik Dean (jaikdean) - fago - Harm van Tilborg - Jan Prieser + - GDIBass - Adrien Lucas (adrienlucas) - Zhuravlev Alexander (scif) - James Michael DuPont @@ -732,8 +744,6 @@ Symfony is the result of the work of many people who made the code better - Nathanael Noblet (gnat) - Dmitry Parnas (parnas) - Paul LE CORRE - - DQNEO - - Shawn Iwinski - Emanuele Iannone - Tony Malzhacker - Mathieu MARCHOIS @@ -775,6 +785,7 @@ Symfony is the result of the work of many people who made the code better - Maksim Muruev - Emil Einarsson - Thomas Landauer + - 243083df - Thibault Duplessis - Marc Abramowitz - Martijn Evers @@ -790,6 +801,7 @@ Symfony is the result of the work of many people who made the code better - Matthew Davis (mdavis1982) - Maks - Antoine LA + - den - pawel-lewtak - omerida - Gábor Tóth @@ -815,6 +827,7 @@ Symfony is the result of the work of many people who made the code better - Valérian Galliat - Rikijs Murgs - Ben Ramsey (ramsey) + - Amaury Leroux de Lens (amo__) - Christian Jul Jensen - Alexandre GESLIN (alexandregeslin) - The Whole Life to Learn @@ -866,6 +879,7 @@ Symfony is the result of the work of many people who made the code better - Sortex - chispita - Wojciech Sznapka + - Gavin Staniforth - Ariel J. Birnbaum - Arjan Keeman - Máximo Cuadros (mcuadros) @@ -899,6 +913,7 @@ Symfony is the result of the work of many people who made the code better - Sergey Novikov (s12v) - Marcos Quesada (marcos_quesada) - Matthew Vickery (mattvick) + - Paul Mitchum (paul-m) - Angel Koilov (po_taka) - Dan Finnie - Ken Marfilla (marfillaster) @@ -919,7 +934,6 @@ Symfony is the result of the work of many people who made the code better - Nerijus Arlauskas (nercury) - SPolischook - Diego Sapriza - - Anton A. Sumin - Joan Cruz - inspiran - Cristobal Dabed @@ -945,10 +959,11 @@ Symfony is the result of the work of many people who made the code better - Malte Blättermann - e-ivanov - Jochen Bayer (jocl) + - Alex Bowers - Jeremy Bush - wizhippo + - Gabriel Ostrolucký - Viacheslav Sychov - - Tyson Andre - Carlos Ortega Huetos - rpg600 - Péter Buri (burci) @@ -987,7 +1002,6 @@ Symfony is the result of the work of many people who made the code better - Brooks Boyd - Roger Webb - Dmitriy Simushev - - Ivo Bathke (ivoba) - Max Voloshin (maxvoloshin) - Nicolas Fabre (nfabre) - Raul Rodriguez (raul782) @@ -1001,13 +1015,14 @@ Symfony is the result of the work of many people who made the code better - Krzysztof Przybyszewski - Paul Matthews - Juan Traverso + - Alain Flaus (halundra) - Tarjei Huse (tarjei) - tsufeki - Philipp Strube - - Christian Sciberras - Clement Herreman (clemherreman) - Dan Ionut Dumitriu (danionut90) - Vladislav Rastrusny (fractalizer) + - Alexander Kurilo (kamazee) - Nyro (nyro) - Marco - Marc Torres @@ -1019,8 +1034,8 @@ Symfony is the result of the work of many people who made the code better - Tobias Stöckler - Mario Young - Jakub Kulhan + - Ilia (aliance) - Mo Di (modi) - - Jeroen van den Enden (stoefke) - Jelte Steijaert (jelte) - Quique Porta (quiqueporta) - stoccc @@ -1041,6 +1056,7 @@ Symfony is the result of the work of many people who made the code better - Sebastian Göttschkes (sgoettschkes) - Tatsuya Tsuruoka - Ross Tuck + - Gunnstein Lye (glye) - Kévin Gomez (kevin) - azine - Dawid Sajdak @@ -1079,6 +1095,7 @@ Symfony is the result of the work of many people who made the code better - markusu49 - Steve Frécinaux - Jules Lamur + - Renato Mendes Figueiredo - ShiraNai7 - Markus Fasselt (digilist) - Vašek Purchart (vasek-purchart) @@ -1181,6 +1198,7 @@ Symfony is the result of the work of many people who made the code better - Stelian Mocanita (stelian) - Flavian (2much) - mike + - Kirk Madera - Keith Maika - Mephistofeles - Hoffmann András @@ -1218,6 +1236,7 @@ Symfony is the result of the work of many people who made the code better - Leonid Terentyev (li0n) - ryunosuke - victoria + - Christian Schmidt - Francisco Facioni (fran6co) - Iwan van Staveren (istaveren) - Povilas S. (povilas) @@ -1274,6 +1293,7 @@ Symfony is the result of the work of many people who made the code better - David Stone - jjanvier - Julius Beckmann + - loru88 - Romain Dorgueil - Christopher Parotat - Grayson Koonce (breerly) @@ -1317,6 +1337,7 @@ Symfony is the result of the work of many people who made the code better - Milos Colakovic (project2481) - Rénald Casagraude (rcasagraude) - Robin Duval (robin-duval) + - rudy onfroy (ronfroy) - Grinbergs Reinis (shima5) - Artem Lopata (bumz) - Nicole Cordes @@ -1386,6 +1407,7 @@ Symfony is the result of the work of many people who made the code better - root - James Hudson - Tom Maguire + - Richard Quadling - David Zuelke - Oleg Andreyev - Pierre Rineau @@ -1445,6 +1467,7 @@ Symfony is the result of the work of many people who made the code better - Daniel González Cerviño - Rafał - Adria Lopez (adlpz) + - Aaron Scherer (aequasi) - Rosio (ben-rosio) - Simon Paarlberg (blamh) - Jeroen Thora (bolle) @@ -1594,8 +1617,10 @@ Symfony is the result of the work of many people who made the code better - Elan Ruusamäe - Thorsten Hallwas - Michael Squires + - Derek Stephen McLean - Norman Soetbeer - zorn + - Yuriy Potemkin - Benjamin Long - Matt Janssen - Peter Gribanov From 12135adbd08eb7b75b309942aa458720025ab956 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 10 Nov 2017 11:43:01 -0800 Subject: [PATCH 03/12] updated VERSION for 2.7.36 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index edea2a9c07261..80e06235959ce 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -58,12 +58,12 @@ abstract class Kernel implements KernelInterface, TerminableInterface protected $startTime; protected $loadClassCache; - const VERSION = '2.7.36-DEV'; + const VERSION = '2.7.36'; const VERSION_ID = 20736; const MAJOR_VERSION = 2; const MINOR_VERSION = 7; const RELEASE_VERSION = 36; - const EXTRA_VERSION = 'DEV'; + const EXTRA_VERSION = ''; const END_OF_MAINTENANCE = '05/2018'; const END_OF_LIFE = '05/2019'; From 6fe8435c6fb74c55b3c6b16fcb53c1677d8309ad Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 10 Nov 2017 11:52:56 -0800 Subject: [PATCH 04/12] bumped Symfony version to 2.7.37 --- src/Symfony/Component/HttpKernel/Kernel.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 80e06235959ce..8bfd79b6c14ea 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -58,12 +58,12 @@ abstract class Kernel implements KernelInterface, TerminableInterface protected $startTime; protected $loadClassCache; - const VERSION = '2.7.36'; - const VERSION_ID = 20736; + const VERSION = '2.7.37-DEV'; + const VERSION_ID = 20737; const MAJOR_VERSION = 2; const MINOR_VERSION = 7; - const RELEASE_VERSION = 36; - const EXTRA_VERSION = ''; + const RELEASE_VERSION = 37; + const EXTRA_VERSION = 'DEV'; const END_OF_MAINTENANCE = '05/2018'; const END_OF_LIFE = '05/2019'; From f2ac69a3782db005b2ef720eee64e2994550906b Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 10 Nov 2017 12:07:16 -0800 Subject: [PATCH 05/12] bumped Symfony version to 2.8.30 --- src/Symfony/Component/HttpKernel/Kernel.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 3d1dcf08335f3..76f0d7625e59d 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -59,12 +59,12 @@ abstract class Kernel implements KernelInterface, TerminableInterface protected $startTime; protected $loadClassCache; - const VERSION = '2.8.29'; - const VERSION_ID = 20829; + const VERSION = '2.8.30-DEV'; + const VERSION_ID = 20830; const MAJOR_VERSION = 2; const MINOR_VERSION = 8; - const RELEASE_VERSION = 29; - const EXTRA_VERSION = ''; + const RELEASE_VERSION = 30; + const EXTRA_VERSION = 'DEV'; const END_OF_MAINTENANCE = '11/2018'; const END_OF_LIFE = '11/2019'; From 18f0fc594d039a7f87fed5ee28053dba348319b1 Mon Sep 17 00:00:00 2001 From: Jeremiah VALERIE Date: Thu, 9 Nov 2017 15:39:19 +0100 Subject: [PATCH 06/12] [ExpressionLanguage] Fix PhpDoc type-hints on Token value Also added tests to cover number parser BC --- .../ExpressionLanguage/Tests/ExpressionLanguageTest.php | 8 ++++++++ src/Symfony/Component/ExpressionLanguage/Token.php | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php b/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php index 0ef278c901496..50a0eb5e95aae 100644 --- a/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php +++ b/src/Symfony/Component/ExpressionLanguage/Tests/ExpressionLanguageTest.php @@ -116,6 +116,14 @@ public function testCachingForOverriddenVariableNames() $this->assertSame('($a + $B)', $result); } + public function testStrictEquality() + { + $expressionLanguage = new ExpressionLanguage(); + $expression = '123 === a'; + $result = $expressionLanguage->compile($expression, array('a')); + $this->assertSame('(123 === $a)', $result); + } + public function testCachingWithDifferentNamesOrder() { $cacheMock = $this->getMockBuilder('Symfony\Component\ExpressionLanguage\ParserCache\ParserCacheInterface')->getMock(); diff --git a/src/Symfony/Component/ExpressionLanguage/Token.php b/src/Symfony/Component/ExpressionLanguage/Token.php index b231bc25e73f2..4517335bbc739 100644 --- a/src/Symfony/Component/ExpressionLanguage/Token.php +++ b/src/Symfony/Component/ExpressionLanguage/Token.php @@ -30,9 +30,9 @@ class Token const PUNCTUATION_TYPE = 'punctuation'; /** - * @param string $type The type of the token (self::*_TYPE) - * @param string $value The token value - * @param int $cursor The cursor position in the source + * @param string $type The type of the token (self::*_TYPE) + * @param string|int|float|null $value The token value + * @param int $cursor The cursor position in the source */ public function __construct($type, $value, $cursor) { From 965b5b5f8da80becc9476b522e23ba0eb47b300a Mon Sep 17 00:00:00 2001 From: Roland Franssen Date: Sat, 11 Nov 2017 23:09:14 +0100 Subject: [PATCH 07/12] [Console] Fix traversable autocomplete values --- .../Console/Helper/QuestionHelper.php | 6 +-- .../Component/Console/Question/Question.php | 6 +-- .../Tests/Helper/QuestionHelperTest.php | 49 +++++++++++++++++++ 3 files changed, 54 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/Console/Helper/QuestionHelper.php b/src/Symfony/Component/Console/Helper/QuestionHelper.php index 1f3e4ff14ac38..2034ce14a4c39 100644 --- a/src/Symfony/Component/Console/Helper/QuestionHelper.php +++ b/src/Symfony/Component/Console/Helper/QuestionHelper.php @@ -134,7 +134,7 @@ public function doAsk(OutputInterface $output, Question $question) $ret = trim($ret); } } else { - $ret = trim($this->autocomplete($output, $question, $inputStream)); + $ret = trim($this->autocomplete($output, $question, $inputStream, is_array($autocomplete) ? $autocomplete : iterator_to_array($autocomplete, false))); } $ret = strlen($ret) > 0 ? $ret : $question->getDefault(); @@ -190,12 +190,12 @@ protected function writeError(OutputInterface $output, \Exception $error) * @param OutputInterface $output * @param Question $question * @param resource $inputStream + * @param array $autocomplete * * @return string */ - private function autocomplete(OutputInterface $output, Question $question, $inputStream) + private function autocomplete(OutputInterface $output, Question $question, $inputStream, array $autocomplete) { - $autocomplete = $question->getAutocompleterValues(); $ret = ''; $i = 0; diff --git a/src/Symfony/Component/Console/Question/Question.php b/src/Symfony/Component/Console/Question/Question.php index 64c9205749c51..bece3e59752ad 100644 --- a/src/Symfony/Component/Console/Question/Question.php +++ b/src/Symfony/Component/Console/Question/Question.php @@ -137,10 +137,8 @@ public function setAutocompleterValues($values) $values = $this->isAssoc($values) ? array_merge(array_keys($values), array_values($values)) : array_values($values); } - if (null !== $values && !is_array($values)) { - if (!$values instanceof \Traversable || !$values instanceof \Countable) { - throw new \InvalidArgumentException('Autocompleter values can be either an array, `null` or an object implementing both `Countable` and `Traversable` interfaces.'); - } + if (null !== $values && !is_array($values) && !$values instanceof \Traversable) { + throw new \InvalidArgumentException('Autocompleter values can be either an array, `null` or a `Traversable` object.'); } if ($this->hidden) { diff --git a/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php b/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php index 69a2256efad2b..3538cbc0b7ac1 100644 --- a/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php +++ b/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php @@ -514,6 +514,40 @@ public function testEmptyChoices() new ChoiceQuestion('Question', array(), 'irrelevant'); } + public function testTraversableAutocomplete() + { + if (!$this->hasSttyAvailable()) { + $this->markTestSkipped('`stty` is required to test autocomplete functionality'); + } + + // Acm + // AcsTest + // + // + // Test + // + // S + // F00oo + $inputStream = $this->getInputStream("Acm\nAc\177\177s\tTest\n\n\033[A\033[A\n\033[A\033[A\033[A\033[A\033[A\tTest\n\033[B\nS\177\177\033[B\033[B\nF00\177\177oo\t\n"); + + $dialog = new QuestionHelper(); + $dialog->setInputStream($inputStream); + $helperSet = new HelperSet(array(new FormatterHelper())); + $dialog->setHelperSet($helperSet); + + $question = new Question('Please select a bundle', 'FrameworkBundle'); + $question->setAutocompleterValues(new AutocompleteValues(array('irrelevant' => 'AcmeDemoBundle', 'AsseticBundle', 'SecurityBundle', 'FooBundle'))); + + $this->assertEquals('AcmeDemoBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + $this->assertEquals('AsseticBundleTest', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + $this->assertEquals('FrameworkBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + $this->assertEquals('SecurityBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + $this->assertEquals('FooBundleTest', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + $this->assertEquals('AcmeDemoBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + $this->assertEquals('AsseticBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + $this->assertEquals('FooBundle', $dialog->ask($this->createInputInterfaceMock(), $this->createOutputInterface(), $question)); + } + protected function getInputStream($input) { $stream = fopen('php://memory', 'r+', false); @@ -545,3 +579,18 @@ private function hasSttyAvailable() return 0 === $exitcode; } } + +class AutocompleteValues implements \IteratorAggregate +{ + private $values; + + public function __construct(array $values) + { + $this->values = $values; + } + + public function getIterator() + { + return new \ArrayIterator($this->values); + } +} From b862168cd043108fd1e5c999c953f57f0e6c4367 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Mon, 13 Nov 2017 06:34:51 +0100 Subject: [PATCH 08/12] fix method name --- src/Symfony/Component/Form/Form.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Form/Form.php b/src/Symfony/Component/Form/Form.php index 83f0055e0c2e0..26c6c2077ecac 100644 --- a/src/Symfony/Component/Form/Form.php +++ b/src/Symfony/Component/Form/Form.php @@ -50,7 +50,7 @@ * either as "Y-m-d" string or as timestamp. Internally we still want to * use a DateTime object for processing. To convert the data from string/integer * to DateTime you can set a normalization transformer by calling - * addNormTransformer(). The normalized data is then converted to the displayed + * addModelTransformer(). The normalized data is then converted to the displayed * data as described before. * * The conversions (1) -> (2) -> (3) use the transform methods of the transformers. From 3eaa18889c5ca3c0573c78ad523d3101f83deea5 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 13 Nov 2017 16:41:44 +0100 Subject: [PATCH 09/12] [HttpFoundation] Fix session-related BC break --- .../Session/Storage/NativeSessionStorage.php | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php b/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php index e35af4e291a70..f03cdf343024d 100644 --- a/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php +++ b/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php @@ -102,12 +102,6 @@ class NativeSessionStorage implements SessionStorageInterface */ public function __construct(array $options = array(), $handler = null, MetadataBag $metaBag = null) { - $this->setMetadataBag($metaBag); - - if (\PHP_VERSION_ID >= 50400 && \PHP_SESSION_ACTIVE === session_status()) { - return; - } - $options += array( // disable by default because it's managed by HeaderBag (if used) 'cache_limiter' => '', @@ -120,6 +114,7 @@ public function __construct(array $options = array(), $handler = null, MetadataB register_shutdown_function('session_write_close'); } + $this->setMetadataBag($metaBag); $this->setOptions($options); $this->setSaveHandler($handler); } @@ -292,7 +287,7 @@ public function getBag($name) throw new \InvalidArgumentException(sprintf('The SessionBagInterface %s is not registered.', $name)); } - if ($this->saveHandler->isActive() && !$this->started) { + if (!$this->started && $this->saveHandler->isActive()) { $this->loadSession(); } elseif (!$this->started) { $this->start(); @@ -340,7 +335,7 @@ public function isStarted() */ public function setOptions(array $options) { - if (headers_sent()) { + if (headers_sent() || (\PHP_VERSION_ID >= 50400 && \PHP_SESSION_ACTIVE === session_status())) { return; } @@ -395,10 +390,6 @@ public function setSaveHandler($saveHandler = null) throw new \InvalidArgumentException('Must be instance of AbstractProxy or NativeSessionHandler; implement \SessionHandlerInterface; or be null.'); } - if (headers_sent($file, $line)) { - throw new \RuntimeException(sprintf('Failed to set the session handler because headers have already been sent by "%s" at line %d.', $file, $line)); - } - // Wrap $saveHandler in proxy and prevent double wrapping of proxy if (!$saveHandler instanceof AbstractProxy && $saveHandler instanceof \SessionHandlerInterface) { $saveHandler = new SessionHandlerProxy($saveHandler); @@ -408,6 +399,10 @@ public function setSaveHandler($saveHandler = null) } $this->saveHandler = $saveHandler; + if (headers_sent() || (\PHP_VERSION_ID >= 50400 && \PHP_SESSION_ACTIVE === session_status())) { + return; + } + if ($this->saveHandler instanceof \SessionHandlerInterface) { if (\PHP_VERSION_ID >= 50400) { session_set_save_handler($this->saveHandler, false); From 38186aab2fbfffad55c05311e9a794689eb9295a Mon Sep 17 00:00:00 2001 From: Samuel ROZE Date: Mon, 13 Nov 2017 13:14:59 +0000 Subject: [PATCH 10/12] [HttpFoundation] Add test --- .../Session/Storage/NativeSessionStorageTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php index 673cd386bf6aa..7eb7e56478ce5 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Storage/NativeSessionStorageTest.php @@ -296,4 +296,19 @@ public function testSetSessionOptionsOnceSessionStartedIsIgnored() // Assert no exception has been thrown by `getStorage()` $this->addToAssertionCount(1); } + + /** + * @requires PHP 5.4 + */ + public function testGetBagsOnceSessionStartedIsIgnored() + { + session_start(); + $bag = new AttributeBag(); + $bag->setName('flashes'); + + $storage = $this->getStorage(); + $storage->registerBag($bag); + + $this->assertEquals($storage->getBag('flashes'), $bag); + } } From 6c34cb2c31831709c260245b30db299ce4f2dded Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 13 Nov 2017 11:30:21 -0800 Subject: [PATCH 11/12] updated CHANGELOG for 2.8.30 --- CHANGELOG-2.8.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG-2.8.md b/CHANGELOG-2.8.md index 627d5312b382b..fe42e8d13a52a 100644 --- a/CHANGELOG-2.8.md +++ b/CHANGELOG-2.8.md @@ -7,6 +7,11 @@ in 2.8 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v2.8.0...v2.8.1 +* 2.8.30 (2017-11-13) + + * bug #24952 [HttpFoundation] Fix session-related BC break (nicolas-grekas, sroze) + * bug #24929 [Console] Fix traversable autocomplete values (ro0NL) + * 2.8.29 (2017-11-10) * bug #24888 [FrameworkBundle] Specifically inject the debug dispatcher in the collector (ogizanagi) From 42596fef66212e7eef1123fef987f35ec5b2f81c Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 13 Nov 2017 11:30:25 -0800 Subject: [PATCH 12/12] updated VERSION for 2.8.30 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 76f0d7625e59d..3ad9e571ef566 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -59,12 +59,12 @@ abstract class Kernel implements KernelInterface, TerminableInterface protected $startTime; protected $loadClassCache; - const VERSION = '2.8.30-DEV'; + const VERSION = '2.8.30'; const VERSION_ID = 20830; const MAJOR_VERSION = 2; const MINOR_VERSION = 8; const RELEASE_VERSION = 30; - const EXTRA_VERSION = 'DEV'; + const EXTRA_VERSION = ''; const END_OF_MAINTENANCE = '11/2018'; const END_OF_LIFE = '11/2019';