From 8053ba1049aac403b6c3196da8d0312bf21f1340 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:04:11 +0200 Subject: [PATCH 01/59] Update CHANGELOG for 4.4.42 --- CHANGELOG-4.4.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/CHANGELOG-4.4.md b/CHANGELOG-4.4.md index 6d426f3b98105..823de8fa24c9f 100644 --- a/CHANGELOG-4.4.md +++ b/CHANGELOG-4.4.md @@ -7,6 +7,41 @@ in 4.4 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/v4.4.0...v4.4.1 +* 4.4.42 (2022-05-27) + + * bug #46448 [DependencyInjection] Fix "proxy" tag: resolve its parameters and pass it to child definitions (nicolas-grekas) + * bug #46442 [FrameworkBundle] Revert "bug #46125 Always add CacheCollectorPass (fancyweb)" (chalasr) + * bug #46443 [DoctrineBridge] Don't reinit managers when they are proxied as ghost objects (nicolas-grekas) + * bug #46427 [FrameworkBundle] fix wiring of annotations.cached_reader (nicolas-grekas) + * bug #46434 [FrameworkBundle] Fix BC break in abstract config commands (yceruto) + * bug #46424 [Form] do not accept array input when a form is not multiple (xabbuh) + * bug #46367 [Mime] Throw exception when body in Email attach method is not ok (alamirault) + * bug #46421 [VarDumper][VarExporter] Deal with DatePeriod->include_end_date on PHP 8.2 (nicolas-grekas) + * bug #46401 [Cache] Throw when "redis_sentinel" is used with a non-Predis "class" option (buffcode) + * bug #46414 Bootstrap 4 fieldset for row errors (konradkozaczenko) + * bug #46412 [FrameworkBundle] Fix dumping extension config without bundle (yceruto) + * bug #46407 [Filesystem] Safeguard (sym)link calls (derrabus) + * bug #46098 [Form] Fix same choice loader with different choice values (HeahDude) + * bug #46380 [HttpClient] Add missing HttpOptions::setMaxDuration() (nicolas-grekas) + * bug #46249 [HttpFoundation] [Session] Regenerate invalid session id (peter17) + * bug #46366 [Mime] Add null check for EmailHeaderSame (magikid) + * bug #46364 [Config] Fix looking for single files in phars with GlobResource (nicolas-grekas) + * bug #46365 [HttpKernel] Revert "bug #46327 Allow ErrorHandler ^5.0 to be used" (nicolas-grekas) + * bug #46114 Fixes "Incorrectly nested style tag found" error when using multi-line header content (Perturbatio) + * bug #46325 [Ldap] Fix LDAP connection options (buffcode) + * bug #46317 [Security/Http] Ignore invalid URLs found in failure/success paths (nicolas-grekas) + * bug #46327 [HttpKernel] Allow ErrorHandler ^5.0 to be used in HttpKernel 4.4 (mpdude) + * bug #46297 [Serializer] Fix JsonSerializableNormalizer ignores circular reference handler in $context (BreyndotEchse) + * bug #45981 [Serializer][PropertyInfo] Fix support for "false" built-in type on PHP 8.2 (alexandre-daubois) + * bug #46277 [HttpKernel] Fix SessionListener without session in request (edditor) + * bug #46282 [DoctrineBridge] Treat firstResult === 0 like null (derrabus) + * bug #46278 [Workflow] Fix deprecated syntax for interpolated strings (nicolas-grekas) + * bug #46264 [Console] Better required argument check in InputArgument (jnoordsij) + * bug #46262 [EventDispatcher] Fix removing listeners when using first-class callable syntax (javer) + * bug #46216 [Form] fix populating single widget time view data with different timezones (xabbuh) + * bug #46221 [DomCrawler][VarDumper] Fix html-encoding emojis (nicolas-grekas) + * bug #46167 [VarExporter] Fix exporting DateTime objects on PHP 8.2 (nicolas-grekas) + * 4.4.41 (2022-04-27) * bug #46154 [Mailer] Restore X-Transport after failure (zenas1210) From da6af7c371655c777182a79f2d88c90e86da98a5 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:04:18 +0200 Subject: [PATCH 02/59] Update CONTRIBUTORS for 4.4.42 --- CONTRIBUTORS.md | 1690 +++++++++++++++++++++++------------------------ 1 file changed, 833 insertions(+), 857 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index bd30bf752af21..b20e486f89471 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -7,471 +7,437 @@ The Symfony Connect username in parenthesis allows to get more information - Fabien Potencier (fabpot) - Nicolas Grekas (nicolas-grekas) - Christian Flothmann (xabbuh) - - Alexander M. Turek (derrabus) - Bernhard Schussek (bschussek) - - Tobias Schultze (tobion) + - Alexander M. Turek (derrabus) - Robin Chalas (chalas_r) + - Tobias Schultze (tobion) - Christophe Coevoet (stof) - - Jérémy DERUSSÉ (jderusse) - - Wouter De Jong (wouterj) + - Jordi Boggiano (seldaek) - Grégoire Pineau (lyrixx) - Maxime Steinhausser (ogizanagi) - Kévin Dunglas (dunglas) - - Thomas Calvet (fancyweb) - - Jordi Boggiano (seldaek) - Victor Berchet (victor) - - Javier Eguiluz (javier.eguiluz) - - Ryan Weaver (weaverryan) + - Jérémy DERUSSÉ (jderusse) + - Thomas Calvet (fancyweb) - Roland Franssen (ro0) - - Jakub Zalas (jakubzalas) + - Wouter de Jong (wouterj) - Johannes S (johannes) + - Ryan Weaver (weaverryan) - Kris Wallsmith (kriswallsmith) + - Jakub Zalas (jakubzalas) + - Javier Eguiluz (javier.eguiluz) + - Yonel Ceruto (yonelceruto) - Tobias Nyholm (tobias) - - Yonel Ceruto González (yonelceruto) - - Oskar Stark (oskarstark) - Hugo Hamon (hhamon) - - Ait Boudad Abdellatif (aitboudad) - Samuel ROZE (sroze) - - Romain Neutron (romain) + - Oskar Stark (oskarstark) - Pascal Borreli (pborreli) - - Jules Pietri (heah) + - Romain Neutron - Joseph Bielawski (stloyd) - - Amrouche Hamza (simperfit) - - Karma Dordrak (drak) + - Drak (drak) + - Abdellatif Ait boudad (aitboudad) - Lukas Kahwe Smith (lsmith) + - Hamza Amrouche (simperfit) - Martin Hasoň (hason) - Jeremy Mikola (jmikola) - Jean-François Simon (jfsimon) - Benjamin Eberlei (beberlei) + - Igor Wiedler + - Jules Pietri - Jan Schädlich (jschaedl) - - Igor Wiedler (igorw) - - Eriksen Costa (eriksencosta) - Kevin Bond (kbond) - - Ener-Getick (energetick) - - Sarah Khalil (saro0h) + - Jonathan Wage (jwage) - Jérôme Tamarelle (gromnan) - - Pierre du Plessis (pierredup) - - Vasilij Duško (staff) - Valentin Udaltsov (vudaltsov) - - Iltar van der Berg (kjarli) - - Jonathan Wage (jwage) - Matthias Pigulla (mpdude) - - Diego Saint Esteben (dosten) - - Grégoire Paris (greg0ire) - Alexandre Salomé (alexandresalome) - - William Durand (couac) + - Grégoire Paris (greg0ire) + - William DURAND - ornicar - - Titouan Galopin (tgalopin) - - Konstantin Myakshin (koc) - Dany Maillard (maidmaid) - - Francis Besset (francisbesset) + - Eriksen Costa + - Diego Saint Esteben (dosten) - stealth35 ‏ (stealth35) - Alexander Mols (asm89) - - Laurent VOULLEMIER (lvo) - - Vasilij Dusko | CREATION + - Pierre du Plessis (pierredup) + - Francis Besset (francisbesset) - Bulat Shakirzyanov (avalanche123) + - Iltar van der Berg - David Maicher (dmaicher) - - Gábor Egyed (1ed) - - gadelat (gadelat) + - Gabriel Ostrolucký (gadelat) + - Miha Vrhovnik (mvrhov) - Saša Stamenković (umpirsky) - - Peter Rehm (rpet) - - Henrik Bjørnskov (henrikbjorn) - - Antoine M (amakdessi) - - Miha Vrhovnik + - Titouan Galopin (tgalopin) + - Gábor Egyed (1ed) - Mathieu Piot (mpiot) - - Diego Saint Esteben (dii3g0) + - Sarah Khalil (saro0h) - Konstantin Kudryashov (everzet) - - Vladimir Reznichenko (kalessil) + - Guilhem N (guilhemn) - Bilal Amarni (bamarni) + - Eriksen Costa - Florin Patan (florinpatan) - - Jáchym Toušek (enumag) - - Alex Pott - - Michel Weimerskirch (mweimerskirch) + - Vladimir Reznichenko (kalessil) + - Peter Rehm (rpet) + - Vasilij Duško (staff) + - Henrik Bjørnskov (henrikbjorn) + - Antoine Makdessi (amakdessi) + - Laurent VOULLEMIER (lvo) - Andrej Hudec (pulzarraider) - Christian Raue - - Issei Murasawa (issei_m) - Eric Clemmons (ericclemmons) - - Graham Campbell (graham) - - Charles Sarrazin (csarrazi) - - Alexander Schranz (alexander-schranz) - - Vasilij Dusko + - Michel Weimerskirch (mweimerskirch) + - Issei Murasawa (issei_m) - Douglas Greenshields (shieldo) - - David Buchmann (dbu) + - Jáchym Toušek (enumag) + - Alexander Schranz (alexander-schranz) + - Denis (yethee) - Arnout Boks (aboks) - - Deni + - Charles Sarrazin (csarrazi) + - David Buchmann (dbu) - Henrik Westphal (snc) - Dariusz Górecki (canni) + - Ener-Getick + - Alex Pott - Fran Moreno (franmomu) + - Graham Campbell (graham) - HypeMC (hypemc) - - Jérôme Vasseur (jvasseur) - - Mathieu Santostefano (welcomattic) - - Dariusz Ruminski - Lee McDermott - Brandon Turner - Luis Cordova (cordoval) - Daniel Holmes (dholmes) - - Sebastiaan Stok (sstok) - - Alexandre Daubois (alexandre-daubois) - Toni Uebernickel (havvg) - Bart van den Burg (burgov) + - Vasilij Dusko | CREATION - Jordan Alliot (jalliot) + - Mathieu Santostefano (welcomattic) - John Wards (johnwards) - - Tomas Norkūnas (norkunas) - - Julien Falque (julienfalque) - - Vincent Langlet (deviling) - - Baptiste Clavié (talus) - - Massimiliano Arione (garak) - - Mathias Arlaud (mtarld) + - Dariusz Ruminski + - Konstantin Myakshin (koc) - Antoine Hérault (herzult) - - Paráda József (paradajozsef) + - Alexandre Daubois (alexandre-daubois) + - Julien Falque (julienfalque) + - Konstantin.Myakshin - Arnaud Le Blanc (arnaud-lb) - - Przemysław Bogusz (przemyslaw-bogusz) + - Sebastiaan Stok (sstok) - Maxime STEINHAUSSER - - Michal Piotrowski (eventhorizon) - - Tomáš Votruba (tomas_votruba) + - Massimiliano Arione (garak) - Tim Nagel (merk) - Chris Wilkinson (thewilkybarkid) - - Peter Kokot (maastermedia) - - Lars Strojny (lstrojny) + - Jérôme Vasseur (jvasseur) - Brice BERNARD (brikou) - - Ahmed TAILOULOUTE (ahmedtai) - - Gregor Harlan (gharlan) + - Jules Pietri + - Tomas Norkūnas (norkunas) + - Michal Piotrowski - marc.weistroff + - Peter Kokot (maastermedia) + - Lars Strojny (lstrojny) - lenar - - Alexander Schwenn (xelaris) - - Jérémy Romey (jeremyfreeagent) - Włodzimierz Gajda (gajdaw) - - Christian Scheb - Adrien Brault (adrienbrault) - - Maxime Helias (maxhelias) - - Yanick Witschi (toflar) - Jacob Dreesen (jdreesen) - - Malte Schlüter (maltemaltesich) - - Joel Wurtz (brouznouf) - - Théo FIDRY (theofidry) + - Théo FIDRY - Florian Voutzinos (florianv) - Teoh Han Hui (teohhanhui) + - Przemysław Bogusz (przemyslaw-bogusz) - Colin Frei - Javier Spagnoletti (phansys) - - Gary PEGEOT (gary-p) + - Vincent Langlet (deviling) + - excelwebzone + - HeahDude + - Joel Wurtz (brouznouf) + - Paráda József (paradajozsef) + - Baptiste Clavié (talus) + - Alexander Schwenn (xelaris) + - Fabien Pennequin (fabienpennequin) + - Gordon Franke (gimler) + - Malte Schlüter (maltemaltesich) - Ruud Kamphuis (ruudk) - - Joshua Thijssen + - Vasilij Dusko + - Yanick Witschi (toflar) - Daniel Wehner (dawehner) - Tugdual Saunier (tucksaun) - - excelwebzone - - Gordon Franke (gimler) - - Saif Eddin Gmati (azjezz) - - Richard van Laak (rvanlaak) - - Jesse Rushlow (geeshoe) - - Fabien Pennequin (fabienpennequin) - - Olivier Dolbeau (odolbeau) - - Smaine Milianni (ismail1432) - - Eric GELOEN (gelo) - - Matthieu Napoli (mnapoli) - - Ion Bazan (ionbazan) - - Jannik Zschiesche (apfelbox) + - Mathias Arlaud (mtarld) - Robert Schönthal (digitalkaoz) - - Florian Lonqueu-Brochard (florianlb) - - Tigran Azatyan (tigranazatyan) - - YaFou - - Gabriel Caruso (carusogabriel) + - Eric GELOEN (gelo) + - Gary PEGEOT (gary-p) + - Gabriel Caruso + - Joshua Thijssen - Stefano Sala (stefano.sala) - - Andréia Bohner (andreia) - - Evgeniy (ewgraf) - - Vincent AUBERT (vincent) + - Mathieu Lechat (mat_the_cat) + - Maxime Helias (maxhelias) + - OGAWA Katsuhiro (fivestar) + - Jhonny Lidfors (jhonne) + - jeremyFreeAgent (jeremyfreeagent) - Juti Noppornpitak (shiroyuki) - - Simon Berger - - Anthony MARTIN (xurudragon) - - Alexander Menshchikov (zmey_kk) + - Gregor Harlan (gharlan) + - Smaine Milianni (ismail1432) + - Anthony MARTIN - Sebastian Hörl (blogsh) + - Tigran Azatyan (tigranazatyan) + - Ion Bazan (ionbazan) - Daniel Gomes (danielcsgomes) - Hidenori Goto (hidenorigoto) - - Jan Rosier (rosier) - - Alessandro Chitolina (alekitto) - - Albert Casademont (acasademont) - Arnaud Kleinpeter (nanocom) - Guilherme Blanco (guilhermeblanco) - - Marco Pivetta (ocramius) - SpacePossum - - Pablo Godel (pgodel) + - Richard van Laak (rvanlaak) - Andreas Braun - - Jérémie Augustin (jaugustin) + - Pablo Godel (pgodel) + - Tomáš Votruba (tomas_votruba) - François-Xavier de Guillebon (de-gui_f) - - Oleg Voronkovich - - hacfi (hifi) + - Alessandro Chitolina (alekitto) - Rafael Dohms (rdohms) - - George Mponos (gmponos) - jwdeitch - - Jeroen Spee (jeroens) + - Saif Eddin Gmati (azjezz) - Jérôme Parmentier (lctrs) - - Fabien Bourigault (fbourigault) - - Joe Bennett (kralos) + - Ahmed TAILOULOUTE (ahmedtai) - Michael Babker (mbabker) - - Mikael Pajunen - - Andreas Schempp (aschempp) - - Alessandro Lai (jean85) - - Romaric Drigon (romaricdrigon) - - Christopher Hertel (chertel) + - Jérémy Derussé + - Matthieu Napoli (mnapoli) - Arman Hosseini (arman) + - Sokolov Evgeniy (ewgraf) - Rokas Mikalkėnas (rokasm) + - Andréia Bohner (andreia) - Niels Keurentjes (curry684) - Vyacheslav Pavlov - - Andreas Möller (localheinz) + - Albert Casademont (acasademont) + - George Mponos (gmponos) - Richard Shank (iampersistent) - - Wouter J - - Thomas Rabaix (rande) - - Chi-teck - - Baptiste Leduc (korbeil) - - Timo Bakx (timobakx) + - Marco Pivetta (ocramius) - Vincent Touzet (vincenttouzet) - - Nate Wiebe (natewiebe13) + - Simon Berger + - Olivier Dolbeau (odolbeau) - Rouven Weßling (realityking) - - Ben Davies (bendavies) + - YaFou - Clemens Tolboom + - Oleg Voronkovich - Helmer Aaviksoo - - Remon van de Kamp (rpkamp) - - Filippo Tessarotto (slamdunk) - - Hiromi Hishida (77web) - - Michael Käfer (michael_kaefer) + - 77web - Matthieu Ouellette-Vachon (maoueh) - Michał Pipa (michal.pipa) - Dawid Nowak - - Martin Hujer (martinhujer) + - Jannik Zschiesche - Roman Martinuk (a2a4) - Amal Raghav (kertz) - - Jonathan Ingram (jonathaningram) + - Jonathan Ingram - Artur Kotyrba + - Wouter J - Tyson Andre - GDIBass - Samuel NELA (snela) - - David Prévot - - Hugo Monteiro (monteiro) - - Dmitrii Poddubnyi (karser) + - Vincent AUBERT (vincent) + - Fabien Bourigault (fbourigault) - zairig imad (zairigimad) - - Tien Vo (tienvx) - Colin O'Dell (colinodell) - - Timothée Barray (tyx) + - Ben Davies (bendavies) - James Halsall (jaitsu) + - Christian Scheb + - Guillaume (guill) - Florent Mata (fmata) + - Christopher Hertel (chertel) + - Mikael Pajunen - Warnar Boekkooi (boekkooi) - - Benjamin Leveque (benji07) + - Justin Hileman (bobthecow) + - Alessandro Lai (jean85) + - Anthony GRASSIOT (antograssiot) - Dmitrii Chekaliuk (lazyhammer) - Clément JOBEILI (dator) - - Mathieu Lechat (mat_the_cat) - - Jeroen Noten (jeroennoten) + - Tom Van Looy (tvlooy) - Marek Štípek (maryo) + - Jesse Rushlow (geeshoe) - Daniel Espendiller - - Possum + - Arnaud PETITPAS (apetitpa) - Dorian Villet (gnutix) - - Michaël Perrin (michael.perrin) + - Martin Hujer (martinhujer) - Sergey Linnik (linniksa) - - Richard Miller (mr_r_miller) + - Richard Miller - Mario A. Alvarez Garcia (nomack84) - - Dennis Benkert (denderello) + - Thomas Rabaix (rande) + - D (denderello) - DQNEO - - Hidde Wieringa (hiddewie) - - Antonio Pauletich (x-coder264) + - David Prévot - Andre Rømcke (andrerom) - - Philippe Segatori - - Thibaut Cheymol (tcheymol) - - Sebastien Morel (plopix) - - mcfedr (mcfedr) - - Nicolas Philippe (nikophil) + - Jeroen Spee (jeroens) + - Andreas Schempp (aschempp) - Ruben Gonzalez (rubenrua) - Benjamin Dulau (dbenjamin) - - Baptiste Lafontaine (magnetik) + - mcfedr (mcfedr) + - Remon van de Kamp - Mathieu Lemoine (lemoinem) - - Justin Hileman (bobthecow) - - Denis Brumann (dbrumann) - Christian Schmidt - Andreas Hucks (meandmymonkey) - - Tom Van Looy (tvlooy) - - Guillaume Pédelagrabe + - Jan Rosier (rosier) - Noel Guilbert (noel) - - Anthony GRASSIOT (antograssiot) - Stadly - Stepan Anchugov (kix) - - François Pluchino (francoispluchino) - bronze1man - sun (sun) - Larry Garfield (crell) - - Edi Modrić (emodric) - - Gocha Ossinkine (ossinkine) + - Michael Käfer (michael_kaefer) + - Andreas Möller (localheinz) - Leo Feyer (leofeyer) + - Philipp Wahala (hifi) - Nikolay Labinskiy (e-moe) - Martin Schuhfuß (usefulthink) - apetitpa - - Matthieu Bontemps (mbontemps) - - apetitpa - - Guilliam Xavier - Pierre Minnieur (pminnieur) - - fivestar - Dominique Bongiraud - - dFayet - - Jeremy Livingston (jeremylivingston) - - Karoly Gossler (connorhu) - - soyuka - - Michael Lee (zerustech) - - Matthieu Auger (matthieuauger) + - Hugo Monteiro (monteiro) + - Baptiste Leduc (korbeil) + - Timo Bakx (timobakx) + - Dmitrii Poddubnyi (karser) + - Julien Pauli + - Florian Lonqueu-Brochard (florianlb) + - Joe Bennett (kralos) - Leszek Prabucki (l3l0) - - Emanuele Panzeri (thepanz) - François Zaninotto (fzaninotto) - Dustin Whittle (dustinwhittle) - jeff - John Kary (johnkary) + - Võ Xuân Tiến (tienvx) - fd6130 (fdtvui) - - Blanchon Vincent (blanchonvincent) - Maciej Malarz (malarzm) - Michele Orselli (orso) + - Denis Brumann (dbrumann) - Sven Paulus (subsven) - - Daniel STANCU - Maxime Veber (nek-) - - Sylvain Fabre (sylfabre) - - Loick Piera (pyrech) - - Clara van Miert - Valentine Boineau (valentineboineau) - - Bastien Jaillot (bastnic) - Rui Marinho (ruimarinho) - Patrick Landolt (scube) - - Michał (bambucha15) - - Eugene Wissner - - Bohan Yang (brentybh) + - Filippo Tessarotto (slamdunk) + - Jeroen Noten (jeroennoten) + - Possum + - Jérémie Augustin (jaugustin) + - Edi Modrić (emodric) - Pascal Montoya - - Julien Brochet (mewt) - - Tristan Darricau (nicofuma) + - Julien Brochet + - Gocha Ossinkine (ossinkine) + - François Pluchino (francoispluchino) + - Tristan Darricau (tristandsensio) - Victor Bocharsky (bocharsky_bw) - - Bozhidar Hristov (warxcell) + - henrikbjorn + - Fritz Michael Gschwantner (fritzmg) - Marcel Beerta (mazen) - - Thomas Landauer (thomas-landauer) - - Pavel Batanov (scaytrase) + - Chi-teck - Mantis Development - - Loïc Faugeron - - quentin neyrat (qneyrat) - - Marcin Szepczynski (czepol) + - Guilliam Xavier + - Hidde Wieringa (hiddewie) + - dFayet + - Antonio Pauletich (x-coder264) - Rob Frawley 2nd (robfrawley) - - Ahmed Raafat - - julien pauli (jpauli) - - Lorenz Schori - - Sébastien Lavoie (lavoiesl) + - Nikita Konstantinov (unkind) + - Michael Lee (zerustech) - Dariusz + - soyuka - Farhad Safarov (safarov) + - Nate Wiebe (natewiebe13) - Hugo Alliaume (kocal) - - BoShurik - - Thomas Lallement (raziel057) - Michael Voříšek - Francois Zaninotto - - Claude Khedhiri (ck-developer) - - Alexander Kotynia (olden) - Daniel Tschinder - Christian Schmidt - - Marcos Sánchez + - Alexander Kotynia (olden) - Elnur Abdurrakhimov (elnur) - Manuel Reinhard (sprain) - - Harm van Tilborg (hvt) - - Danny Berger (dpb587) - - Antonio J. García Lagar (ajgarlag) + - Nicolas Philippe (nikophil) - Adam Prager (padam87) - - Judicaël RUFFIEUX (axanagor) - Benoît Burnichon (bburnichon) - - Roman Marintšenko (inori) + - maxime.steinhausser + - Roman Ring (inori) - Xavier Montaña Carreras (xmontana) - - Mickaël Andrieu (mickaelandrieu) + - Timothée Barray (tyx) + - Romaric Drigon (romaricdrigon) + - Sylvain Fabre (sylfabre) - Soner Sayakci - Xavier Perez - Arjen Brouwer (arjenjb) - - Katsuhiro OGAWA - Artem Lopata - Patrick McDougle (patrick-mcdougle) - Marc Weistroff (futurecat) + - Danny Berger (dpb587) - Alif Rachmawadi - Anton Chernikov (anton_ch1989) - - Kristen Gilden (kgilden) - - Pierre-Yves LEBECQ (pylebecq) + - Pierre-Yves Lebecq (pylebecq) + - Benjamin Leveque (benji07) - Jordan Samouh (jordansamouh) - - Jakub Kucharovic (jkucharovic) - Sullivan SENECHAL (soullivaneuh) - - Thomas Bisignani (toma) + - Loick Piera (pyrech) - Uwe Jäger (uwej711) - Dāvis Zālītis (k0d3r1s) + - Lynn van der Berg (kjarli) + - Michaël Perrin (michael.perrin) - Eugene Leonovich (rybakit) - Joseph Rouff (rouffj) - Félix Labrecque (woodspire) - GordonsLondon - - Nguyen Xuan Quynh (xuanquynh) - Jan Sorgalla (jsor) - Ray + - Philipp Cordes (corphi) - Chekote - Aleksandar Jakovljevic (ajakov) - Thomas Adam - - Jhonny Lidfors (jhonne) - - Diego Agulló (aeoris) + - Thomas Landauer (thomas-landauer) - jdhoek - Jurica Vlahoviček (vjurica) - Bob den Otter (bopp) - Thomas Schulz (king2500) - - Frank de Jonge (frenkynet) - - Artem Henvald (artemgenvald) - - Lescot Edouard (idetox) - - Nikita Konstantinov - - Wodor Wodorski - - Guilhem N (guilhemn) - - Mohammad Emran Hasan (phpfour) + - Frank de Jonge + - Jules Pietri + - Sebastien Morel (plopix) - Christopher Davis (chrisguitarguy) - - Dmitriy Mamontov (mamontovdmitriy) - - Ben Ramsey (ramsey) - - Laurent Masforné (heisenberg) + - Karoly Gossler (connorhu) + - Matthieu Auger (matthieuauger) + - Josip Kruslin (jkruslin) + - Thomas Lallement (raziel057) - Sergey (upyx) - Giorgio Premi - - Guillaume (guill) - renanbr - - Matthew Smeets - - Alex Rock Ancelet (pierstoval) + - Sébastien Lavoie (lavoiesl) + - Alex Rock (pierstoval) + - Wodor Wodorski - Beau Simensen (simensen) - - Johann Pardanaud - - Michael Hirschler (mvhirsch) - Robert Kiss (kepten) - - Zan Baldwin (zanderbaldwin) - - Roumen Damianoff (roumen) + - Zan Baldwin (zanbaldwin) + - Antonio J. García Lagar (ajgarlag) + - Alexandre Quercia (alquerci) + - Marcos Sánchez + - BoShurik + - Zmey - Kim Hemsø Rasmussen (kimhemsoe) - - Oleg Andreyev - - Martin Herndl (herndlm) - - Pavel Kirpitsov (pavel-kirpichyov) + - Oleg Andreyev (oleg.andreyev) + - jaugustin - Pascal Luna (skalpa) - Wouter Van Hecke + - Baptiste Lafontaine (magnetik) - Iker Ibarguren (ikerib) - - Bob van de Vijver (bobvandevijver) + - Indra Gunawan (indragunawan) - Peter Kruithof (pkruithof) - Antoine Lamirault - Michael Holm (hollo) - Arjen van der Meijden - - Markus Fasselt (digilist) - - Damien Alexandre (damienalexandre) - - Simon Mönch (sm) + - Blanchon Vincent (blanchonvincent) + - Michał (bambucha15) - Christian Schmidt - Marcin Sikoń (marphi) - - Gonzalo Vilaseca (gonzalovilaseca) - Ben Hakim - - Haralan Dobrev (hkdobrev) - Marco Petersen (ocrampete16) - - MatTheCat + - Bohan Yang (brentybh) + - Bastien Jaillot (bastnic) - Vilius Grigaliūnas - David Badura (davidbadura) - - Chad Sikorra (chadsikorra) - Alan Poulain (alanpoulain) - Chris Smith (cs278) + - Thomas Bisignani (toma) - Florian Klein (docteurklein) - W0rma - Manuel Kiessling (manuelkiessling) - - Dimitri Gritsajuk (ottaviano) - Alexey Kopytko (sanmai) - - Gijs van Lammeren - - Pol Dellaiera (drupol) - Atsuhiro KUBO (iteman) - - Alireza Mirsepassi (alirezamirsepassi) - rudy onfroy (ronfroy) - Serkan Yildiz (srknyldz) - Andrew Moore (finewolf) - Bertrand Zuchuat (garfield-fr) + - Marc Morera (mmoreram) - Sébastien Alfaiate (seb33300) - Gabor Toth (tgabi333) - realmfoo @@ -479,216 +445,198 @@ The Symfony Connect username in parenthesis allows to get more information - Andrey Esaulov (andremaha) - Grégoire Passault (gregwar) - Jerzy Zawadzki (jzawadzki) - - Phil Taylor (prazgod) - Ismael Ambrosi (iambrosi) - Craig Duncan (duncan3dc) - Emmanuel BORGES (eborges78) - Aurelijus Valeiša (aurelijus) - Jan Decavele (jandc) - Gustavo Piltcher - - flack (flack) - Stepan Tanasiychuk (stfalcon) - Ivan Kurnosov - Tiago Ribeiro (fixe) - - Hidde Boomsma (hboomsma) - - John Bafford (jbafford) - Raul Fraile (raulfraile) - Adrian Rudnik (kreischweide) + - Pavel Batanov (scaytrase) - Francesc Rosàs (frosas) - - Romain Pierre (romain-pierre) - - Julien Galenski (ruian) - - Dieter - Bongiraud Dominique - Kyle - janschoenherr - Emanuele Gaspari (inmarelibero) - Dariusz Rumiński - - Chris Tanaskoski - - James Hemery - - Berny Cantos (xphere81) - Andrii Bodnar - - Thierry Thuon (lepiaf) - - Antonio Jose Cerezo (ajcerezo) - - Ricard Clau (ricardclau) - - Mark Challoner (markchalloner) - - Loïc Frémont (loic425) - - Oleksandr Barabolia (oleksandrbarabolia) + - Artem (artemgenvald) + - Thierry T (lepiaf) + - Lorenz Schori + - Jeremy Livingston (jeremylivingston) - ivan - - Greg Anderson - - Tri Pham (phamuyentri) - Urinbayev Shakhobiddin (shokhaa) - - Gennady Telegin (gtelegin) - - Krystian Marcisz (simivar) - - Toni Rudolf (toooni) - - Dalibor Karlović (dkarlovi) + - Ahmed Raafat + - Philippe Segatori + - Thibaut Cheymol (tcheymol) - Erin Millard - - Artur Melo (restless) - Matthew Lewinski (lewinski) - Magnus Nordlander (magnusnordlander) - - Carlos Pereira De Amorim (epitre) - - Rodrigo Aguilera - - Vladimir Varlamov (iamvar) + - Islam Israfilov (islam93) + - Ricard Clau (ricardclau) + - Roumen Damianoff - Thomas Royer (cydonia7) - Nicolas LEFEVRE (nicoweb) - - alquerci + - Emanuele Panzeri (thepanz) - Mateusz Sip (mateusz_sip) - Francesco Levorato - Vitaliy Zakharov (zakharovvi) - Tobias Sjösten (tobiassjosten) - Gyula Sallai (salla) - - Benjamin Cremer (bcremer) + - Bob van de Vijver (bobvandevijver) - Hendrik Luup (hluup) - Inal DJAFAR (inalgnu) - Christian Gärtner (dagardner) + - Martin Herndl (herndlm) - Dmytro Borysovskyi (dmytr0) - Tomasz Kowalczyk (thunderer) + - Johann Pardanaud + - Pavel Kirpitsov (pavel-kirpichyov) - Artur Eshenbrener - - Dries Vints + - Harm van Tilborg (hvt) - Thomas Perez (scullwm) - Yoann RENARD (yrenard) + - smoench - Felix Labrecque - Yaroslav Kiliba - Terje Bråten - - Renan Gonçalves (renan_saddam) + - Gonzalo Vilaseca (gonzalovilaseca) + - Markus Fasselt (digilist) - Tim Goudriaan (codedmonkey) - Tarmo Leppänen (tarlepp) - Martin Auswöger + - Jakub Kucharovic (jkucharovic) + - Daniel STANCU + - Kristen Gilden - Hubert Lenoir (hubert_lenoir) - Robbert Klarenbeek (robbertkl) - Hamza Makraz (makraz) - Eric Masoero (eric-masoero) - Vitalii Ekert (comrade42) - - JhonnyL + - Clara van Miert + - Haralan Dobrev (hkdobrev) - hossein zolfi (ocean) + - Alexander Menshchikov - Clément Gautier (clementgautier) - - Koen Reiniers (koenre) - - Sanpi + - Damien Alexandre (damienalexandre) + - Sanpi (sanpi) - Eduardo Gulias (egulias) - giulio de donato (liuggio) - - Mohamed Gamal - ShinDarth - Stéphane PY (steph_py) - Philipp Kräutli (pkraeutli) - Rhodri Pugh (rodnaph) - - Grzegorz Zdanowski (kiler129) - - Kirill chEbba Chebunin (chebba) - - Fritz Michael Gschwantner (fritzmg) + - Grzegorz (Greg) Zdanowski (kiler129) + - Dimitri Gritsajuk (ottaviano) + - Kirill chEbba Chebunin + - Pol Dellaiera (drupol) - + - Alex (aik099) - Fabien Villepinte - SiD (plbsid) - - Matthew Grasmick - Greg Thornton (xdissent) - - BENOIT POLASZEK (bpolaszek) - Alex Bowers - - Piotr Kugla (piku235) - - Philipp Cordes - - Jeroen Thora (bolle) + - Quynh Xuan Nguyen (seriquynh) - Costin Bereveanu (schniper) - - Loïc Chardonnet (gnusat) - Marek Kalnik (marekkalnik) - Vyacheslav Salakhutdinov (megazoll) + - Maksym Slesarenko (maksym_slesarenko) - Hassan Amouhzi + - Warxcell (warxcell) - Daniel Gorgan - Tamas Szijarto - Michele Locati - Pavel Volokitin (pvolok) - Arthur de Moulins (4rthem) - Matthias Althaus (althaus) - - Nicolas Dewez (nicolas_dewez) - Saif Eddin G - Endre Fejes - Tobias Naumann (tna) - - Greg ORIOL - Daniel Beyer - - Manuel Alejandro Paz Cetina + - flack (flack) - Shein Alexey - - Jacek Jędrzejewski (jacek.jedrzejewski) - - Romain Gautier (mykiwi) - - Stefan Kruppa + - Phil Taylor (prazgod) - Joe Lencioni - Daniel Tschinder + - Diego Agulló (aeoris) - vladimir.reznichenko - Kai - Lee Rowlands - - Krzysztof Piasecki (krzysztek) - Maximilian Reichel (phramz) - Alain Hippolyte (aloneh) - Grenier Kévin (mcsky_biig) - Karoly Negyesi (chx) - Xavier HAUSHERR - Albert Jessurum (ajessu) + - Romain Pierre - Laszlo Korte - Jonathan Scheiber (jmsche) - - Miha Vrhovnik - Alessandro Desantis - hubert lecorche (hlecorche) - Vladyslav Loboda - - fritzmg - Marc Morales Valldepérez (kuert) - - Jean-Baptiste GOMOND (mjbgo) - - Vadim Kharitonov (virtuozzz) + - Vadim Kharitonov (vadim) - Oscar Cubo Medina (ocubom) - Karel Souffriau - Christophe L. (christophelau) - - Sander Toonen (xatoo) - Anthon Pang (robocoder) + - Julien Galenski (ruian) + - Ben Scott (bpscott) - Marko Kaznovac (kaznovac) - Pablo Lozano (arkadis) - - Marc Laporte - - Michał Jusięga - - Bernd Stellwag - - Sébastien Santoro (dereckson) - - Gennadi Janzen - Brian King - - Michel Salib (michelsalib) - - geoffrey + - quentin neyrat (qneyrat) + - Chris Tanaskoski - Steffen Roßkamp - Alexandru Furculita (afurculita) - - Valentin Jonovs (valentins-jonovs) - - Bastien DURAND (deamon) + - Michel Salib (michelsalib) + - Valentin Jonovs + - geoffrey - Jeanmonod David (jeanmonod) - - Christin Gruber (christingruber) - - Andrey Sevastianov - Webnet team (webnet) - - marie + - Ben Ramsey (ramsey) + - Berny Cantos (xphere81) + - Antonio Jose Cerezo (ajcerezo) + - Marcin Szepczynski (czepol) + - Lescot Edouard (idetox) + - Mohammad Emran Hasan (phpfour) + - Dmitriy Mamontov (mamontovdmitriy) - Jan Schumann - - Noémi Salaün (noemi-salaun) - Niklas Fiekas - - Philippe Segatori + - Mark Challoner (markchalloner) - Markus Bachmann (baachi) - Kévin THERAGE (kevin_therage) - - Michel Hunziker - Gunnstein Lye (glye) - - scyzoryck - - Matthias Krauser (mkrauser) - Erkhembayar Gantulga (erheme318) - Alexis Lefebvre - - Lorenzo Millucci (lmillucci) - - Jérôme Tamarelle (jtamarelle-prismamedia) - - Andrii Popov (andrii-popov) - - Islam93 + - Greg Anderson - lancergr - - Mihai Stancu + - Tri Pham (phamuyentri) - Ivan Nikolaev (destillat) - Gildas Quéméner (gquemener) - - Pierrick VIGNAND (pierrick) + - Laurent Masforné (heisenberg) + - Claude Khedhiri (ck-developer) - Desjardins Jérôme (jewome62) - Arturs Vonda - - Josip Kruslin - - Xavier Briand (xavierbriand) + - Matthew Smeets + - Toni Rudolf (toooni) - Asmir Mustafic (goetas) - - DerManoMann - - Stefan Gehrig (sgehrig) - vagrant - - Aurimas Niekis (gcds) - - EdgarPE - - Florian Pfitzer (marmelatze) + - Benjamin Cremer (bcremer) - Asier Illarramendi (doup) + - AKeeman (akeeman) - Martijn Cuppens + - Restless-ET - Vlad Gregurco (vgregurco) - Boris Vujicic (boris.vujicic) + - Dries Vints + - Judicaël RUFFIEUX (axanagor) - Chris Sedlmayr (catchamonkey) - - Indra Gunawan (indragunawan) + - DerManoMann - Jérôme Tanghe (deuchnord) - Mathias STRASSER (roukmoute) - simon chrzanowski (simonch) @@ -700,9 +648,8 @@ The Symfony Connect username in parenthesis allows to get more information - Marcin Michalski (marcinmichalski) - Vitaliy Tverdokhlib (vitaliytv) - Ariel Ferrandini (aferrandini) - - Niklas Keller - Dirk Pahl (dirkaholic) - - cedric lombardot (cedriclombardot) + - Cédric Lombardot (cedriclombardot) - Dane Powell - Arkadius Stefanski (arkadius) - Jonas Flodén (flojon) @@ -710,519 +657,413 @@ The Symfony Connect username in parenthesis allows to get more information - Tobias Weichart - Miro Michalicka - M. Vondano - - Dominik Zogg (dominik.zogg) - - Marek Pietrzak - - Tavo Nieves J + - Dominik Zogg + - Tavo Nieves J (tavoniievez) - Luc Vieillescazes (iamluc) - Lukáš Holeczy (holicz) - Erik Saunier (snickers) - - franek (franek) + - François Dume (franek) - Jerzy (jlekowski) - Raulnet - - Christian Wahler - Giso Stallenberg (gisostallenberg) - - Gintautas Miselis - Rob Bast - Roberto Espinoza (respinoza) - Pierre Rineau - - Andreas Leathley (iquito) - - Soufian EZ-ZANTAR (soezz) - - Arun Philip - - Zander Baldwin + - Soufian EZ ZANTAR (soezz) - Marek Zajac - Adam Harvey + - Cătălin Dan (dancatalin) + - ilyes kooli (skafandri) - Anton Bakai - - Vadim Borodavko (javer) - - Xesxen - battye - Sam Fleming (sam_fleming) - - William Arslett - Alex Bakhturin - Patrick Reimers (preimers) + - Brayden Williams (redstar504) - insekticid - - Alexander Obuhovich (aik099) - Jérémy M (th3mouk) - - Vitaliy Ryaboy (vitaliy) - boombatower - - Fabrice Bernhard (fabriceb) + - Alireza Mirsepassi (alirezamirsepassi) - Jérôme Macias (jeromemacias) - Andrey Astakhov (aast) - ReenExe - - Adrien Lucas (adrienlucas) - Fabian Lange (codingfabian) - - Frank Neff (fneff) - - Roman Lapin (memphys) - Yoshio HANAWA - - Randy Geraads - Jan van Thoor (janvt) - - Gladhon - Joshua Nye - Martin Kirilov (wucdbm) + - Koen Reiniers (koenre) - Nathan Dench (ndenc2) - - Thibault Richard (t-richard) + - Gijs van Lammeren - Sebastian Bergmann - - Miroslav Sustek + - Matthew Grasmick + - Miroslav Šustek (sustmi) - Pablo Díez (pablodip) - - Michel Roca (mroca) - Kevin McBride - Sergio Santoro - - Robin van der Vleuten (robinvdvleuten) - Philipp Rieber (bicpi) - Manuel de Ruiter (manuel) - Nathanael Noblet (gnat) - nikos.sotiropoulos + - BENOIT POLASZEK (bpolaszek) - Eduardo Oliveira (entering) - Oleksii Zhurbytskyi - Bilge - - Ilya Antipenko (aivus) + - Eugene Wissner - Ricardo Oliveira (ricardolotr) - Roy Van Ginneken (rvanginneken) - - Steve Grunwell - ondrowan - Barry vd. Heuvel (barryvdh) - - Jon Dufresne + - Chad Sikorra (chadsikorra) - Fabien S (bafs) - Evan S Kaufman (evanskaufman) - - Alex Bacart - mcben - Jérôme Vieilledent (lolautruche) - Roman Anasal - - Maks Slesarenko - Filip Procházka (fprochazka) - - mmoreram - - Yannick Ihmels (ihmels) + - Jeroen Thora (bolle) - Markus Lanthaler (lanthaler) - Remi Collet + - Piotr Kugla (piku235) - Vicent Soria Durá (vicentgodella) - Michael Moravec - - Carlos Buenosvinos (carlosbuenosvinos) - Leevi Graham (leevigraham) - Anthony Ferrara - Ioan Negulescu + - Greg ORIOL - Jakub Škvára (jskvara) - Andrew Udvare (audvare) - alexpods - - Dennis Langen (nijusan) - - Adrien Wilmet (adrienfr) - - Adam Szaraniec (mimol) + - Adam Szaraniec - Dariusz Ruminski - - Erik Trapman (eriktrapman) + - Romain Gautier (mykiwi) + - Matthieu Bontemps + - Erik Trapman - De Cock Xavier (xdecock) - - Almog Baku (almogbaku) - Evert Harmeling (evertharmeling) + - Nicolas Dewez (nicolas_dewez) - Scott Arciszewski - Xavier HAUSHERR - Norbert Orzechowicz (norzechowicz) - - stlrnz - - Denis Charrier (brucewouaigne) + - Fabrice Bernhard (fabriceb) - Matthijs van den Bos (matthijs) - - Simon Podlipsky (simpod) - - DemigodCode - bhavin (bhavin4u) - Jaik Dean (jaikdean) + - Krzysztof Piasecki (krzysztek) - Pavel Popov (metaer) - Lenard Palko - - arai - Nils Adermann (naderman) - Tom Klingenberg - Gábor Fási - - DUPUCH (bdupuch) - - Dadang NH (dadangnh) + - R. Achmad Dadang Nur Hidayanto (dadangnh) - Nate (frickenate) - - Joachim Løvgaard (loevgaard) - Stefan Kruppa - - jhonnyL + - Jacek Jędrzejewski (jacek.jedrzejewski) + - Stefan Kruppa - sasezaki - - Kristof Van Cauwenbergh (kristofvc) - Dawid Pakuła (zulusx) - - Marco Lipparini (liarco) - Florian Rey (nervo) - Rodrigo Borrego Bernabé (rodrigobb) + - John Bafford (jbafford) - Emanuele Iannone - - Jörn Lang (j.lang) - Petr Duda (petrduda) - - Marcos Rezende (rezehnde) + - Marcos Rezende (rezende79) - Denis Gorbachev (starfall) - - Peter van Dommelen - - Tim van Densen - Martin Morávek (keeo) - - Steven Surowiec - Kevin Saliou (kbsali) + - Steven Surowiec (steves) - Shawn Iwinski + - Dieter - Samuele Lilli (doncallisto) - Gawain Lynch (gawain) - - Peter Bowyer (pbowyer) - Wojciech Kania - - mmokhi - - NothingWeAre - - Andrii Dembitskyi + - mmokhi - Ryan - - Lctrs - Alexander Deruwe (aderuwe) - Dave Hulbert (dave1010) - - Konstantin Grachev (grachevko) - Ivan Rey (ivanrey) + - M. (mbontemps) - Marcin Chyłek (songoq) - - Ben Scott - Ned Schwartz - - Anderson Müller - Ziumin - - Jeremy Benoist - Lenar Lõhmus - - Daniël Brekelmans (dbrekelmans) - - Simon Heimberg (simon_heimberg) - - Benjamin Laugueux (yzalis) + - Sander Toonen (xatoo) - Zach Badgett (zachbadgett) + - Loïc Faugeron - Aurélien Fredouelle - Pavel Campr (pcampr) - Andrii Dembitskyi + - Forfarle (forfarle) - Johnny Robeson (johnny) - - Pavol Tuka - Disquedur - - Michiel Boeckaert (milio) - Benjamin Morel - - Dmitriy Derepko - Geoffrey Tran (geoff) - - Thiago Cordeiro (thiagocordeiro) - - Jan Behrens - - Dragos Protung (dragosprotung) + - Jannik Zschiesche + - Bernd Stellwag + - Jan Ole Behrens (deegital) - Romain Monteil (ker0x) - Mantas Var (mvar) - Terje Bråten - - Yann LUCAS (drixs6o9) - Sebastian Krebs - Piotr Stankowski - - Stewart Malik - - Stefan Graupner (efrane) - - Gemorroj (gemorroj) - - Baptiste Leduc (bleduc) - Julien Maulny - - Mihail Krasilnikov (krasilnikovm) - - iamvar - - Pierre Tondereau - - Alex Vo (votanlean) - - Daniel González (daniel.gonzalez) - - Piergiuseppe Longo - - Kevin Auivinet - - Aurélien MARTIN - - Malte Schlüter - - Jules Matsounga (hyoa) - - Quentin Dequippe (qdequippe) - - khoptynskyi - - Jean-Christophe Cuvelier [Artack] + - Gennadi Janzen + - James Hemery - julien57 - - Julien Montel (julienmgel) - Mátyás Somfai (smatyas) - - Alexandre Tranchant (alexandre_t) - - Anthony Moutte - - Thomas Ferney (thomasf) - - Simon DELICATA - - Hallison Boaventura (hallisonboaventura) + - Bastien DURAND (deamon) - Dmitry Simushev - alcaeus - - Thomas Talbot (ioni) - Fred Cox - - Iliya Miroslavov Iliev (i.miroslavov) - - Safonov Nikita (ns3777k) + - Simon DELICATA - vitaliytv - Egor Taranov - - Nicolas Martin (cocorambo) + - Philippe Segatori + - Loïc Frémont (loic425) - Jon Gotlin (jongotlin) - Adrian Nguyen (vuphuong87) - benjaminmal + - Andrey Sevastianov + - Oleksandr Barabolia (oleksandrbarabolia) - Khoo Yong Jun + - Christin Gruber (christingruber) - Sebastian Blum - - Laurent Clouet - - aubx + - Daniel González (daniel.gonzalez) - Julien Turby - - Marvin Butkereit - - Eduard Bulava (nonanerz) - Renan - Ricky Su (ricky) - - Igor Timoshenko (igor.timoshenko) + - scyzoryck - Kyle Evans (kevans91) - - Benoit Mallo - - Charles-Henri Bruyand - Max Rath (drak3) - - Valentin - - pizzaminded + - marie - Stéphane Escandell (sescandell) - - Konstantin S. M. Möllers (ksmmoellers) - Fractal Zombie - - linh - James Johnston + - Noémi Salaün (noemi-salaun) - Sinan Eldem - - Kajetan Kołtuniak (kajtii) - - Damien Fayet (rainst0rm) + - Gennady Telegin - Alexandre Dupuy (satchette) - - MatTheCat + - Michel Hunziker - Malte Blättermann - - Islam Israfilov (islam93) - Simeon Kolev (simeon_kolev9) - Joost van Driel (j92) - Jonas Elfering + - Mihai Stancu - Nahuel Cuesta (ncuesta) - Chris Boden (cboden) + - EStyles (insidestyles) - Christophe Villeger (seragan) + - Krystian Marcisz (simivar) + - Matthias Krauser (mkrauser) - Julien Fredon - - Jacek Wilczyński (jacekwilczynski) - Xavier Leune (xleune) - Hany el-Kerdany - Wang Jingyu - Åsmund Garfors - Maxime Douailin - - Jean Pasdeloup (pasdeloup) + - Jean Pasdeloup + - Michael Hirschler (mvhirsch) + - Lorenzo Millucci (lmillucci) - Javier López (loalf) - Reinier Kip + - Jérôme Tamarelle (jtamarelle-prismamedia) - Geoffrey Brier (geoffrey-brier) - Alexandre Parent - Roger Guasch (rogerguasch) - DT Inier (gam6itko) - Vladimir Tsykun - - Andrei O - Dustin Dobervich (dustin10) - Luis Tacón (lutacon) - Dmitrii Tarasov (dtarasov) - - Karl Shea - dantleech - Philipp Kolesnikov - - Valentin - Maxim Dovydenok (shiftby) - - Anne-Sophie Bachelard (annesophie) - Sebastian Marek (proofek) - - Jan Vernieuwe (vernija) + - Carlos Pereira De Amorim (epitre) - zenmate - - Michal Trojanowski - - j.schmitt + - Andrii Popov (andrii-popov) - David Fuhr - - Evgeny Anisiforov - - smoench - - Max Grigorian (maxakawizard) + - Rodrigo Aguilera + - Vladimir Varlamov (iamvar) + - Aurimas Niekis (gcds) - Martins Sipenko - Guilherme Augusto Henschel - Rostyslav Kinash - - Cristoforo Cervino (cristoforocervino) - Dennis Fridrich (dfridrich) - Mardari Dorel (dorumd) - Daisuke Ohata - Vincent Simonin + - Pierrick VIGNAND (pierrick) - Alex Bogomazov (alebo) - - maxime.steinhausser - - Claus Due (namelesscoder) - - adev - - Alexandru Patranescu + - aaa2000 (aaa2000) - Andy Palmer (andyexeter) - - Stefan Warman + - Stefan Warman (warmans) - Tristan Maindron (tmaindron) - - Behnoush norouzali (behnoush) + - Behnoush Norouzali (behnoush) - Marko H. Tamminen (gzumba) - Wesley Lancel + - Xavier Briand (xavierbriand) - Ke WANG (yktd26) - - Timothée BARRAY - - Nilmar Sanchez Muguercia - Ivo Bathke (ivoba) - - Ippei SUmida (ippey_s) + - Ippei Sumida (ippey_s) - David Molineus - Strate - - Jon Green - Anton A. Sumin - Israel J. Carberry - Miquel Rodríguez Telep (mrtorrent) + - Stefan Gehrig (sgehrig) - Sergey Kolodyazhnyy (skolodyazhnyy) - umpirski - Quentin de Longraye (quentinus95) - Chris Heng (gigablah) - - Shaun Simmons (simshaun) - Richard Bradley - - Ulumuddin Yunus (joenoez) + - Ulumuddin Cahyadi Yunus (joenoez) - rtek - - Benjamin Dos Santos - - Jérémy Jarrié (gagnar) - - Adrien Jourdier - - Tomas Javaisis - - Ivan Grigoriev + - Adrien Jourdier (eclairia) + - Florian Pfitzer (marmelatze) + - Ivan Grigoriev (greedyivan) - Johann Saunier (prophet777) - Kevin SCHNEKENBURGER - Fabien Salles (blacked) - - Andreas Erhard - - John VanDeWeghe - - Sergey Belyshkin + - Andreas Erhard (andaris) + - Sergey Belyshkin (sbelyshkin) - Michael Devery (mickadoo) - Antoine Corcy - Ahmed Ashraf (ahmedash95) - Gert Wijnalda (cinamo) - Luca Saba (lucasaba) - - maxime.perrimond - - Sascha Grossenbacher - - cthulhu - - Rémi Leclerc - - Jonas Hünig + - Sascha Grossenbacher (berdir) + - Robin Lehrmann - Szijarto Tamas - Thomas P - - Robin Lehrmann (robinlehrmann) - - Catalin Dan - Jaroslav Kuba - - Kristijan Kanalas - - Stephan Vock - Benjamin Zikarsky (bzikarsky) + - Kristijan Kanalaš (kristijan_kanalas_infostud) + - sl_toto (sl_toto) + - Marek Pietrzak (mheki) - “Filip - - Marion Hurteau - - Dmitrii Lozhkin - - Sobhan Sharifi (50bhan) - - Stephen - - Tomasz (timitao) - - Nguyen Tuan Minh (tuanminhgp) - - Malte Schlüter + - Mickaël Andrieu (mickaelandrieu) - Simon Watiau (simonwatiau) - Ruben Jacobs (rubenj) - Simon Schick (simonsimcity) - - redstar504 - Tristan Roussel + - Niklas Keller - Cameron Porter - Hossein Bukhamsin - Oliver Hoff + - William Arslett - Christian Sciberras (uuf6429) - - Arthur Woimbée - - Théo DELCEY - - Disparity - - Andrii Serdiuk (andreyserdjuk) - - dangkhoagms (dangkhoagms) - - Floran Brutel (notFloran) (floran) - origaminal - Matteo Beccati (matteobeccati) + - Renan Gonçalves (renan_saddam) + - Vitaliy Ryaboy (vitaliy) - Kevin (oxfouzer) - Paweł Wacławczyk (pwc) - - Sagrario Meneses - Oleg Zinchenko (cystbear) - Baptiste Meyer (meyerbaptiste) - - Stefano A. (stefano93) - Tales Santos (tsantos84) - Johannes Klauss (cloppy) - Evan Villemez - - Florian Hermann (fhermann) - fzerorubigd - Thomas Ploch - Benjamin Grandfond (benjamin) - Tiago Brito (blackmx) - - Roromix - - Maxime AILLOUD (mailloud) + - Gintautas Miselis (naktibalda) - Richard van den Brand (ricbra) - Toon Verwerft (veewee) - - mohammadreza honarkhah - develop - flip111 + - Douglas Hammond (wizhippo) - VJ - RJ Garcia - - Adam Wójs (awojs) + - Adrien Lucas (adrienlucas) - Delf Tonder (leberknecht) - - Paweł Niedzielski (steveb) - - Peter Jaap Blaakmeer - Ondrej Exner - Mark Sonnabaum - - Junaid Farooq (junaidfarooq) - Massimiliano Braglia (massimilianobraglia) - - Frankie Wittevrongel - Richard Quadling + - James Hudson (mrthehud) - Raphaëll Roussel - - Anton Kroshilin - Michael Lutz - - Javier Espinosa (javespi) - jochenvdv + - Michel Roca (mroca) - Reedy - Arturas Smorgun (asarturas) - - Andrea Sprega (asprega) - - Alexander Volochnev (exelenz) - - Viktor Bajraktar (njutn95) - - Mbechezi Nawo - - Michael Piecko + - Aleksandr Volochnev (exelenz) + - Robin van der Vleuten (robinvdvleuten) + - Grinbergs Reinis (shima5) + - Michael Piecko (michael.piecko) - Toni Peric (tperic) - yclian - Aleksey Prilipko - Jelle Raaijmakers (gmta) - - Damien Fa - Andrew Berry - - twifty - - Indra Gunawan (guind) + - Wybren Koelmans (wybren_koelmans) - Roberto Nygaard - - Peter Ward - Davide Borsatto (davide.borsatto) - - Guillaume Sainthillier (guillaume-sainthillier) - - Benjamin RICHARD (rebolon) - James Gilliland (neclimdul) - Gert de Pagter - - Ilya Ch. (ilya0) - Julien DIDIER (juliendidier) - - Ilia Sergunin (maranqz) - - marbul - - Dominik Ritter (dritter) + - Dalibor Karlović + - Randy Geraads + - Andreas Leathley (iquito) + - Vadim Borodavko (javer) - Sebastian Grodzicki (sgrodzicki) - - Florian Caron (shalalalala) + - Mohamed Gamal - Eric COURTIAL - - Jeroen van den Enden (stoefke) - - Aurélien Fontaine + - Xesxen + - Jeroen van den Enden (endroid) + - Arun Philip - Pascal Helfenstein - Baldur Rensch (brensch) - Carl Casbolt (carlcasbolt) - Vladyslav Petrovych - - Hugo Sales + - Loïc Chardonnet - Alex Xandra Albert Sim - - Carson Full - Sergey Yastrebov + - Carson Full (carsonfull) - kylekatarnls (kylekatarnls) - Trent Steel (trsteel88) + - Steve Grunwell - Yuen-Chi Lian - Tarjei Huse (tarjei) - Besnik Br - Axel Guckelsberger (guite) - Jose Gonzalez - - Jonathan (jls-esokia) - - Dariusz Ruminski + - Jonathan Sui Lioung Lee Slew (jlslew) - Claudio Zizza - - Zlatoslav Desyatnikov - - Wickex - - tuqqu - - Neagu Cristian-Doru (cristian-neagu) - - Dude (b1rdex) + - Anatoly Pashin (b1rdex) - Dave Marshall (davedevelopment) - Jakub Kulhan (jakubkulhan) - Shaharia Azam - avorobiev - Gerben Oolbekkink - - Kai - - Bartłomiej Zając + - Gladhon - stoccc - Grégoire Penverne (gpenverne) - Venu - - Lars Vierbergen - Jonatan Männchen - Dennis Hotson - Andrew Tchircoff (andrewtch) + - Lars Vierbergen (vierbergenlars) + - Xav` (xavismeh) - michaelwilliams - - Romain - - Matěj Humpál - - Pierre Grimaud (pgrimaud) - Alexandre Parent - 1emming - Nykopol (nykopol) + - Thibault Richard (t-richard) - Jordan Deitch - - Raphael Hardt - Casper Valdemar Poulsen - - SnakePin + - Guillaume Verstraete - vladimir.panivko - Josiah (josiah) - Dennis Væversted (srnzitcom) - - Guillaume Verstraete (versgui) - Joschi Kuphal - John Bohn (jbohn) - - Marc Morera (mmoreram) - - Jason Tan - - Julien Pauli - - Dominik Piekarski (dompie) - - Rares Sebastian Moldovan (raresmldvn) + - Jason Tan (jt2k) - Jérémy REYNAUD (babeuloula) + - Felds Liscia (felds) - Mathieu Rochette (mathroc) - - Victor Garcia - - Marek Víger (freezy) - Andrew Hilobok (hilobok) - Noah Heck (myesain) - Christian Soronellas (theunic) @@ -1230,78 +1071,76 @@ The Symfony Connect username in parenthesis allows to get more information - fedor.f - Yosmany Garcia (yosmanyga) - Jeremiasz Major - - Wouter de Wild - Trevor North - Degory Valentine - izzyp - - Benoit Lévêque (benoit_leveque) - Jeroen Fiege (fieg) - - Krzysiek Łabuś - - Juraj Surman - - Camille Dejoye - - 1ma (jautenim) - - Douglas Hammond (wizhippo) + - Martin (meckhardt) + - Marcel Hernandez + - Krzysztof Łabuś (crozin) - Xavier Lacot (xavier) + - Jon Dufresne - possum - Denis Zunke (donalberto) - - Ahmadou Waly Ndiaye (waly) + - _sir_kane (waly) - Antonin CLAUZIER (0x346e3730) - - moldman + - Olivier Maisonneuve - Jonathan Johnson (jrjohnson) - - Olivier Maisonneuve (olineuve) + - Andrei C. (moldman) + - Mike Meier (mykon) - Pedro Miguel Maymone de Resende (pedroresende) + - stlrnz - Masterklavi + - Adrien Wilmet (adrienfr) - Franco Traversaro (belinde) - Francis Turmel (fturmel) + - Yannick Ihmels (ihmels) - Nikita Nefedov (nikita2206) + - Alex Bacart - cgonzalez - hugovms - Ben - - roromix - - Dmitry Pigin (dotty) - Vincent Composieux (eko) + - Cyril Pascal (paxal) - Jayson Xu (superjavason) + - DemigodCode - fago - - popnikos - - Tito Costa - Jan Prieser - - GDIBass - Maximilian Bösing - - Thiago Melo + - Matt Johnson (gdibass) - Zhuravlev Alexander (scif) - Stefano Degenkamp (steef) - James Michael DuPont + - Carlos Buenosvinos (carlosbuenosvinos) - Christian Gripp (core23) - Jake (jakesoft) - - Flinsch - - Quentin Dreyer + - Vincent CHALAMON - Bahman Mehrdad (bahman) - - Jordan de Laune (jdelaune) - Christopher Hall (mythmakr) - - none (nelexa) - Patrick Dawkins (pjcdawkins) - Paul Kamer (pkamer) - Rafał Wrzeszcz (rafalwrzeszcz) - - Vincent CHALAMON (vincentchalamon) + - Nguyen Xuan Quynh - Reen Lokum + - Dennis Langen (nijusan) - Martin Parsiegla (spea) - - Bernhard Rusch + - Manuel Alejandro Paz Cetina + - Denis Charrier (brucewouaigne) + - Youssef Benhssaien (moghreb) - Mario Ramundo (rammar) - Ivan - - Quentin Schuler - Nico Haase + - Philipp Scheit (pscheit) - Pierre Vanliefland (pvanliefland) - Roy Klutman (royklutman) - Sofiane HADDAG (sofhad) + - Quentin Schuler (sukei) - frost-nzcr4 - - Taylor Otwell - Shahriar56 - - Sami Mussbach - Dhananjay Goratela - Kien Nguyen - - Foxprodev - - Eric Hertwig - - Niels Robin-Aubertin + - Bozhidar Hristov + - arai - Achilles Kaloeridis (achilles) - Laurent Bassin (lbassin) - Mouad ZIANI (mouadziani) @@ -1309,107 +1148,102 @@ The Symfony Connect username in parenthesis allows to get more information - andrey1s - Abhoryo - Fabian Vogler (fabian) + - Joachim Løvgaard (loevgaard) + - Simon Podlipsky (simpod) - Shakhobiddin - Korvin Szanto - Stéphan Kochen - - Steven Dubois - Arjan Keeman - - siganushka - Alaattin Kahramanlar (alaattin) - Sergey Zolotov (enleur) + - Nicole Cordes (ichhabrecht) - Maksim Kotlyar (makasim) + - siganushka (siganushka) - Neil Ferreira - Julie Hourcade (juliehde) - Dmitry Parnas (parnas) - - Paul LE CORRE - Loïc Beurlet - - Sébastien COURJEAN - Ana Raro - Ana Raro - Tony Malzhacker - - Pchol - - Mathieu MARCHOIS + - Andreas Lutro (anlutro) + - DUPUCH (bdupuch) - Cyril Quintin (cyqui) - - Cyrille Bourgois (cyrilleb) - Gerard van Helden (drm) - Florian Wolfsjaeger (flowolf) - Ivan Sarastov (isarastov) - Johnny Peck (johnnypeck) - Jordi Sala Morales (jsala) + - Loic Chardonnet - Ivan Menshykov - David Romaní - Patrick Allaert + - Alexander Li (aweelex) - Gustavo Falco (gfalco) - Matt Robinson (inanimatt) + - Kristof Van Cauwenbergh (kristofvc) + - Marco Lipparini (liarco) + - Peter Bowyer (pbowyer) - Aleksey Podskrebyshev - Calin Mihai Pristavu - Gabrielle Langer + - Jörn Lang - David Marín Carreño (davefx) - Fabien LUCAS (flucas2) + - Konstantin Grachev (grachevko) + - Hidde Boomsma (hboomsma) + - Johan Vlaar (johjohan) - Ondrej Machulda (ondram) - - Omar Yepez (oyepez003) - - Ashura - mwsaz - - carlos-ea - - Jérémy Benoist - - Ferran Vidal - bogdan - - Jelle Kapitein - - Benoît Bourgeois - - lerminou - - mantulo - - pdragun - - corphi - - JoppeDC - Daniel Tiringer + - Geert De Deckere - grizlik + - Henry Snoek - Derek ROTH + - Jeremy Benoist - Ben Johnson + - Jan Kramer - mweimerskirch - Andrew Codispoti - - Benjamin Franzke - - baron (bastien) + - Benjamin Laugueux + - Lctrs + - Benoît Bourgeois (bierdok) - Dmytro Boiko (eagle) - Shin Ohno (ganchiku) - - Geert De Deckere (geertdd) - - Jan Kramer (jankramer) - - Kubicki Kamil (kubik) - - Simon Leblanc (leblanc_simon) + - Joppe De Cuyper (joppedc) - Matthieu Mota (matthieumota) - - Mikhail Prosalov (mprosalov) - - Ronny López (ronnylt) + - Jean-Baptiste GOMOND (mjbgo) - abdul malik ikhsan (samsonasik) - - Henry Snoek (snoek09) - - Dmitry (staratel) - - Tito Miguel Costa (titomiguelcosta) - - Simone Di Maulo (toretto460) + - Morgan Auchede - Christian Morgan - - Alexander Miehe (engerim) - - Morgan Auchede (mauchede) + - Alexander Miehe + - Andrii Dembitskyi + - Daniël Brekelmans (dbrekelmans) - Sascha Dens (saschadens) + - Simon Heimberg (simon_heimberg) - Morten Wulff (wulff) - Don Pinkster - Maksim Muruev - Emil Einarsson + - Anderson Müller - 243083df - Thibault Duplessis - Rimas Kudelis - Marc Abramowitz - Martijn Evers - Tony Tran - - Evgeniy Koval - - Jacques Moati - - Balazs Csaba (balazscsaba2006) - - Benoit Galati (benoitgalati) + - Balazs Csaba - Bill Hance (billhance) - Douglas Reith (douglas_reith) - - Forfarle (forfarle) - Harry Walter (haswalt) + - Jacques MOATI (jmoati) - Johnson Page (jwpage) - Kuba Werłos (kuba) - Ruben Gonzalez (rubenruateltek) - Michael Roterman (wtfzdotnet) - Philipp Keck + - Pavol Tuka - Arno Geurts - Adán Lobato (adanlobato) - Ian Jenkins (jenkoian) @@ -1418,114 +1252,115 @@ The Symfony Connect username in parenthesis allows to get more information - Matthew Davis (mdavis1982) - Paulo Ribeiro (paulo) - Markus S. (staabm) - - Maks - - Knallcharge - - Antoine LA + - Marc Laporte + - Michał Jusięga - den - - pawel-lewtak - - omerida - Gábor Tóth - - tsilefy - - Markus Klein - - Matthias Dötsch - - Bogdan + - ouardisoft - Daniel Cestari - Matt Janssen - - Matteo Galli - - Loenix - - Simon Frost - - David Lima - - Sean Templeton + - Dmitriy Derepko - Stéphane Delprat - - Ronny (big-r) - - Brian Freytag (brianfreytag) - - Cătălin Dan (dancatalin) - - Erwan Nader (ernadoo) - Elan Ruusamäe (glen) - - Ian Littman (iansltx) - - Arkadiusz Kondas (itcraftsmanpl) - - Joao Paulo V Martins (jpjoao) - Brunet Laurent (lbrunet) - - Jérémy (libertjeremy) - Florent Viel (luxifer) + - Maks 3w (maks3w) + - Michiel Boeckaert (milio) - Mikhail Yurasov (mym) - - LOUARDI Abdeltif (ouardisoft) - Robert Gruendler (pulse00) - Sebastian Paczkowski (sebpacz) - Simon Terrien (sterrien) - - Success Go (successgo) - Benoît Merlet (trompette) - - Aaron Piotrowski (trowski) - - Vincent MOULENE (vints24) - - Koen Kuipers - datibbaw + - Dragos Protung (dragosprotung) + - Koen Kuipers (koku) - Nicolas de Marqué (nicola) - - Antoine Leblanc - - Andre Johnson - - Marco Pfeiffer + - Thiago Cordeiro (thiagocordeiro) + - Matthieu Bontemps - Rootie - - Gabriel Solomon (gabrielsolomon) + - Sébastien Santoro (dereckson) - Daniel Alejandro Castro Arellano (lexcast) - - Aleksandar Dimitrov (netbull) - - Gary Houbre (thegarious) - - sensio - Thomas Jarrand + - Baptiste Leduc (bleduc) - Antoine Bluchet (soyuka) - Patrick Kaufmann - Anton Dyshkant - Paul Oms + - Yann LUCAS (drixs6o9) - Reece Fowell (reecefowell) - - stefan.r - Htun Htun Htet (ryanhhh91) - Guillaume Gammelin - Valérian Galliat - Sorin Pop (sorinpop) - d-ph + - Stewart Malik - Renan Taranto (renan-taranto) + - Stefan Graupner (efrane) + - Gemorroj (gemorroj) + - Thomas Talbot - Adrien Chinour - Rikijs Murgs + - Mihail Krasilnikov (krasilnikovm) - Uladzimir Tsykun + - iamvar - Amaury Leroux de Lens (amo__) - Christian Jul Jensen - - Alexandre GESLIN (alexandregeslin) + - Alexandre GESLIN - The Whole Life to Learn - - joel lusavuvu (enigma97) + - Pierre Tondereau + - Joel Lusavuvu (enigma97) + - Alex Vo (votanlean) - Mikkel Paulson - ergiegonzaga - André Matthies + - Piergiuseppe Longo + - Kevin Auivinet - Liverbool (liverbool) - Valentin Nazarov + - Dalibor Karlović + - Aurélien MARTIN + - Malte Schlüter + - Jules Matsounga (hyoa) + - Quentin Dequippe (qdequippe) + - Yewhen Khoptynskyi (khoptynskyi) - Jérôme Nadaud (jnadaud) - Sam Malone - - Phan Thanh Ha (haphan) + - Ha Phan (haphan) - Chris Jones (leek) - neghmurken + - stefan.r - xaav + - Jean-Christophe Cuvelier [Artack] - Mahmoud Mostafa (mahmoud) + - Alexandre Tranchant (alexandre_t) + - Anthony Moutte - Ahmed Abdou - shreyadenny - Daniel Iwaniec + - Thomas Ferney (thomasf) - Pieter - Michael Tibben + - Hallison Boaventura (hallisonboaventura) - Mas Iting - Billie Thompson - Albion Bame (abame) - - Ganesh Chandrasekaran + - Ganesh Chandrasekaran (gxc4795) - Sander Marechal - Ivan Nemets - Grégoire Hébert (gregoirehebert) - Franz Wilding (killerpoke) - - ProgMiner - Oleg Golovakhin (doc_tr) - Icode4Food (icode4food) - Radosław Benkel - - EStyles (insidestyles) - - kevin.nadin + - Kevin Nadin (kevinjhappy) - jean pasqualini (darkilliant) + - Iliya Miroslavov Iliev (i.miroslavov) + - Safonov Nikita (ns3777k) - Ross Motley (rossmotley) - ttomor - Mei Gwilym (meigwilym) - - Michael H. Arieli (excelwebzone) + - Michael H. Arieli + - Nicolas Martin (cocorambo) - Tom Panier (neemzy) - Fred Cox - luffy1727 @@ -1535,25 +1370,35 @@ The Symfony Connect username in parenthesis allows to get more information - Sander Coolen (scoolen) - Emil Masiakowski - Amirreza Shafaat (amirrezashafaat) + - Laurent Clouet - Adoni Pavlakis (adoni) - Nicolas Le Goff (nlegoff) - Alex Hofbauer (alexhofbauer) - Maarten Nusteling (nusje2000) + - Anne-Sophie Bachelard - Ahmed EBEN HASSINE (famas23) + - Marvin Butkereit - Ben Oman - Chris de Kok - - Andreas Kleemann + - Eduard Bulava (nonanerz) + - Andreas Kleemann (andesk) + - Igor Timoshenko (igor.timoshenko) - Manuele Menozzi - “teerasak” - Anton Babenko (antonbabenko) - Irmantas Šiupšinskas (irmantas) + - Benoit Mallo + - Charles-Henri Bruyand - Danilo Silva - Giuseppe Campanelli + - Valentin + - pizzaminded - Matthieu Calie (matth--) - - Arnaud PETITPAS (apetitpa) + - Konstantin S. M. Möllers (ksmmoellers) - Ken Stanley - ivan - Zachary Tong (polyfractal) + - linh - Oleg Krasavin (okwinza) - Mario Blažek (marioblazek) - Jure (zamzung) @@ -1564,11 +1409,13 @@ The Symfony Connect username in parenthesis allows to get more information - johnstevenson - hamza - dantleech + - Kajetan Kołtuniak (kajtii) - Sander Goossens (sandergo90) - Rudy Onfroy - Tero Alén (tero) - - Stanislav Kocanda - DerManoMann + - Damien Fayet (rainst0rm) + - MatTheCat - Guillaume Royer - Erfan Bahramali - Artem (digi) @@ -1585,22 +1432,23 @@ The Symfony Connect username in parenthesis allows to get more information - chispita - Wojciech Sznapka - Luis Pabon (luispabon) - - Gavin Staniforth - boulei_n - Anna Filina (afilina) + - Gavin (gavin-markup) - Ksaveras Šakys (xawiers) + - Shaun Simmons - Ariel J. Birnbaum - Patrick Luca Fazzi (ap3ir0n) - Danijel Obradović - Pablo Borowicz - - Arjan Keeman - Bruno Rodrigues de Araujo (brunosinister) - Máximo Cuadros (mcuadros) - Lukas Mencl + - Jacek Wilczyński (jacekwilczynski) - tamirvs - gauss - julien.galenski - - Christian Neff + - Christian Neff (secondtruth) - Chris Tiearney - Oliver Hoff - Ole Rößner (basster) @@ -1610,92 +1458,106 @@ The Symfony Connect username in parenthesis allows to get more information - tamar peled - Per Sandström (per) - Goran Juric - - Laurent Ghirardotti (laurentg) + - Laurent G. (laurentg) - Nicolas Macherey - Guido Donnari - - AKeeman (akeeman) - Mert Simsek (mrtsmsk0) - Lin Clark - - Meneses (c77men) + - Christophe Meneses (c77men) - Jeremy David (jeremy.david) + - Andrei O - Jordi Rejas - Troy McCabe - Ville Mattila - - ilyes kooli - gr1ev0us - mlazovla - Alejandro Diaz Torres + - Karl Shea + - Valentin - Max Beutel - Łukasz Chruściel (lchrusciel) + - Jan Vernieuwe (vernija) - Antanas Arvasevicius - Pierre Dudoret + - Michal Trojanowski - Thomas + - j.schmitt - Georgi Georgiev - Maximilian Berghoff (electricmaxxx) - - nacho + - Evgeny Anisiforov - TristanPouliquen - Piotr Antosik (antek88) + - Nacho Martin (nacmartin) - mwos - Volker Killesreiter (ol0lll) - Vedran Mihočinec (v-m-i) - Sergey Novikov (s12v) - creiner + - ProgMiner - Marcos Quesada (marcos_quesada) - - Matthew Vickery (mattvick) + - Matthew (mattvick) - MARYNICH Mikhail (mmarynich-ext) - - Viktor Novikov (panzer_commander) + - Viktor Novikov (nowiko) - Paul Mitchum (paul-m) - Angel Koilov (po_taka) - RevZer0 (rav) - Dan Finnie - Marek Binkowski - Ken Marfilla (marfillaster) + - Max Grigorian (maxakawizard) - benatespina (benatespina) - Denis Kop - Andrey Lebedev (alebedev) + - Cristoforo Cervino (cristoforocervino) - Jean-Guilhem Rouel (jean-gui) - Yoann MOROCUTTI + - EdgarPE - jfcixmedia - Tomasz Kusy - Dominic Tubach - - Nikita Konstantinov - Martijn Evers - Alexander Onatskiy - Philipp Fritsche - tarlepp - Benjamin Paap (benjaminpaap) + - Claus Due (namelesscoder) - Guillaume Aveline - Christian + - Alexandru Patranescu - Denis Golubovskiy (bukashk0zzz) - Arkadiusz Rzadkowolski (flies) - - Sergii Smertin (nfx) + - Serge (nfx) - Oksana Kozlova (oksanakozlova) - Quentin Moreau (sheitak) - Mikkel Paulson - Michał Strzelecki - Bert Ramakers - Angelov Dejan (angelov) - - hugofonseca (fonsecas72) + - Aurimas Niekis (aurimasniekis) + - Hugo Fonseca (fonsecas72) - Marc Duboc (icemad) - Martynas Narbutas + - Timothée BARRAY + - Nilmar Sanchez Muguercia - Bailey Parker - - Eddie Jaoude - Antanas Arvasevicius + - Eddie Abou-Jaoude (eddiejaoude) - Haritz Iturbe (hizai) - Nerijus Arlauskas (nercury) - - SPolischook - Diego Sapriza - Joan Cruz - inspiran + - Alex Demchenko - Cristobal Dabed - Daniel Mecke (daniel_mecke) - Matteo Giachino (matteosister) - - Alex Demchenko (pilot) + - Serhii Polishchuk (spolischook) - Tadas Gliaubicas (tadcka) - Thanos Polymeneas (thanos) - Atthaphon Urairat - Benoit Garret - Maximilian Ruta (deltachaos) + - Jon Green (jontjs) - Mickaël Isaert (misaert) - Jakub Sacha - Julius Kiekbusch @@ -1704,44 +1566,43 @@ The Symfony Connect username in parenthesis allows to get more information - Claude Dioudonnat - Jonathan Hedstrom - Peter Smeets (darkspartan) - - Jhonny Lidfors (jhonny) - Julien Bianchi (jubianchi) - Robert Meijers - James Sansbury - Marcin Chwedziak - Benjamin - hjkl - - Tony Cosentino (tony-co) - Dan Wilga - Oleksii Svitiashchuk - Andrew Tch - Alexander Cheprasov - Tristan Bessoussa (sf_tristanb) - Rodrigo Díez Villamuera (rodrigodiez) - - Nicolas Jourdan - - James Hudson - Stephen Clouse - e-ivanov - Nathanaël Martel (nathanaelmartel) - - Einenlum + - Nicolas Jourdan (nicolasjc) + - Benjamin Dos Santos + - Yann Rabiller (einenlum) + - GagnarTest (gagnartest) - Jochen Bayer (jocl) + - Tomas Javaisis - Patrick Carlo-Hickman - Bruno MATEU - Jeremy Bush - Lucas Bäuerle - - wizhippo - Thomason, James - Dario Savella - Gordienko Vladislav + - Ener-Getick - Viacheslav Sychov - - Alexandre Quercia (alquerci) - Helmut Hummel (helhum) - Matt Brunt - Jack Thomas - Carlos Ortega Huetos - - rpg600 - Péter Buri (burci) - Evgeny Efimov (edefimov) + - John VanDeWeghe - kaiwa - Daniel Badura - Charles Sanquer (csanquer) @@ -1764,15 +1625,19 @@ The Symfony Connect username in parenthesis allows to get more information - Kai Dederichs - Vladimir Luchaninov (luchaninov) - spdionis + - maxime.perrimond - rchoquet - rvoisin - gitlost - Taras Girnyk + - cthulhu - Dmitry Derepko + - Rémi Leclerc - Jan Vernarsky + - Sergio + - Jonas Hünig - Amine Yakoubi - Eduardo García Sanz (coma) - - Sergio (deverad) - Arend Hummeling - Makdessi Alex - fduch (fduch) @@ -1782,22 +1647,28 @@ The Symfony Connect username in parenthesis allows to get more information - Jason Schilling (chapterjason) - David de Boer (ddeboer) - Eno Mullaraj (emullaraj) + - Stephan Vock (glaubinix) - Nathan PAGE (nathix) - Ryan Rogers + - Arnaud - Klaus Purer - - arnaud (arnooo999) + - Dmitrii Lozhkin - Gilles Doge (gido) + - Marion Hurteau (marionleherisson) - Oscar Esteve (oesteve) + - Sobhan Sharifi (50bhan) - Peter Potrowl - abulford - Philipp Kretzschmar - - antograssiot - Ilya Vertakov - Brooks Boyd - - johnillo + - Stephen - Roger Webb - Dmitriy Simushev - Pawel Smolinski + - John Espiritu (johnillo) + - Tomasz (timitao) + - Nguyen Tuan Minh (tuanminhgp) - Oxan van Leeuwen - pkowalczyk - dbrekelmans @@ -1809,19 +1680,18 @@ The Symfony Connect username in parenthesis allows to get more information - mousezheng - mshavliuk - Rémy LESCALLIER - - WybrenKoelmans - - Derek Lambert - MightyBranch - Kacper Gunia (cakper) + - Derek Lambert (dlambert) - Peter Thompson (petert82) - Victor Macko (victor_m) - error56 - Felicitus - - Krzysztof Przybyszewski - alexpozzi - - Vladimir - Quentin Devos - Jorge Vahldick (jvahldick) + - Krzysztof Przybyszewski (kprzybyszewski) + - Vladimir Mantulo (mantulo) - Frederic Godfrin - Paul Matthews - aim8604 @@ -1832,71 +1702,88 @@ The Symfony Connect username in parenthesis allows to get more information - Juan Traverso - David Legatt (dlegatt) - Alain Flaus (halundra) + - Arthur Woimbée - tsufeki + - Théo DELCEY - Philipp Strube - Thomas Nunninger + - Andrii Serdiuk (andreyserdjuk) - Clement Herreman (clemherreman) + - dangkhoagms (dangkhoagms) - Dan Ionut Dumitriu (danionut90) + - Evgeny (disparity) + - Floran Brutel (notFloran) (floran) - Vladislav Rastrusny (fractalizer) - Vlad Gapanovich (gapik) - Alexander Kurilo (kamazee) - - Nyro (nyro) + - nyro (nyro) - Konstantin Bogomolov - Marco - Marc Torres - Mark Spink - - cesar - Alberto Aldegheri + - Dalibor Karlović - Cesar Scur (cesarscur) + - Sagrario Meneses - Dmitri Petmanson - heccjj - Alexandre Melard + - Stefano A. (stefano93) - PierreRebeilleau - Jay Klehr - Sergey Yuferev - Tobias Stöckler - Mario Young - Ilia (aliance) - - Chris McCafferty (cilefen) + - cilefen (cilefen) + - Florian Hermann (fhermann) - Mo Di (modi) - Pablo Schläpfer - Christian Rishøj + - Roromix - Patrick Berenschot - SuRiKmAn - rtek + - Christian Wahler (christian) - Jelte Steijaert (jelte) + - Maxime AILLOUD (mailloud) - David Négrier (moufmouf) - Quique Porta (quiqueporta) - - Artem Oliynyk (artemoliynyk) + - mohammadreza honarkhah + - Artem Oliinyk (artemoliynyk) - Ben Roberts (benr77) - Andrea Quintino (dirk39) - Tomasz Szymczyk (karion) - Alex Vasilchenko - sez-open - - Xavier Coureau - fruty - ConneXNL - Aharon Perkel - matze + - Adam Wójs (awojs) - Justin Reherman (jreherman) - Rubén Calvo (rubencm) + - Paweł Niedzielski (steveb) - Abdul.Mohsen B. A. A - - Swen van Zanten + - Cédric Girard + - Peter Jaap Blaakmeer - Agustin Gomes - - Benoît Burnichon - pthompson - Malaney J. Hill - Alexandre Pavy - Adiel Cristo (arcristo) - Artem Stepin (astepin) - Christian Flach (cmfcmf) - - Cédric Girard (enk_) - Fabian Kropfhamer (fabiank) + - Junaid Farooq (junaidfarooq) - Lars Ambrosius Wallenborn (larsborn) - Oriol Mangas Abellan (oriolman) - Sebastian Göttschkes (sgoettschkes) + - Swen van Zanten (swenvanzanten) + - Frankie Wittevrongel - Tatsuya Tsuruoka - Ross Tuck + - Zander Baldwin - Oleksiy (alexndlm) - Kévin Gomez (kevin) - Mihai Nica (redecs) @@ -1904,6 +1791,8 @@ The Symfony Connect username in parenthesis allows to get more information - Adam Prickett - azine - Luke Towers + - Anton Kroshilin + - Pierre Tachoire - Dawid Sajdak - Norman Soetbeer - Ludek Stepan @@ -1911,21 +1800,22 @@ The Symfony Connect username in parenthesis allows to get more information - Craig Menning (cmenning) - Balázs Benyó (duplabe) - Erika Heidi Reinaldo (erikaheidi) - - Kyryll Maesh (gauss) - - Pierre Tachoire (krichprollsch) + - William Thomson (gauss) + - Javier Espinosa (javespi) - Marc J. Schmidt (marcjs) - František Maša - Sebastian Schwarz + - karolsojko - Marco Jantke - Saem Ghani - - Clément LEFEBVRE - - Conrad Kleinespel - Zacharias Luiten - Sebastian Utz - Adrien Gallou (agallou) + - Andrea Sprega (asprega) - Maks Rafalko (bornfree) - - Karol Sójko (karolsojko) - - sl_toto (sl_toto) + - Conrad Kleinespel (conradk) + - Clément LEFEBVRE (nemoneph) + - Viktor Bajraktar (njutn95) - Walter Dal Mut (wdalmut) - abluchet - Ruud Arentsen @@ -1935,18 +1825,21 @@ The Symfony Connect username in parenthesis allows to get more information - Arend-Jan Tetteroo - Albin Kerouaton - Sébastien HOUZÉ + - Mbechezi Nawo - Jingyu Wang - steveYeah - - Samy Dindane (dinduks) + - Samy D (dinduks) - Keri Henare (kerihenare) - Andre Eckardt (korve) - Cédric Lahouste (rapotor) - Samuel Vogel (samuelvogel) - Osayawe Ogbemudia Terry (terdia) - AndrolGenhald + - Damien Fa - Berat Doğan - Guillaume LECERF - Juanmi Rodriguez Cerón + - twifty - Andy Raines - Anthony Ferrara - Geoffrey Pécro (gpekz) @@ -1955,41 +1848,52 @@ The Symfony Connect username in parenthesis allows to get more information - Flavien Knuchel (knuch) - Mathieu TUDISCO (mathieutu) - Dmytro Dzubenko + - Peter Ward - markusu49 - Steve Frécinaux - Constantine Shtompel - Jules Lamur - Renato Mendes Figueiredo + - Benjamin RICHARD - pdommelen - Eric Stern - ShiraNai7 - Cedrick Oka - Antal Áron (antalaron) + - Guillaume Sainthillier (guillaume-sainthillier) - Vašek Purchart (vasek-purchart) - Janusz Jabłoński (yanoosh) - Fleuv - Tayfun Aydin - - Sandro Hopf - Łukasz Makuch - Arne Groskurth + - Ilya Chekalsky - Ostrzyciel - George Giannoulopoulos - - Alexander Pasichnick + - Alexander Pasichnik (alex_brizzz) - Luis Ramirez (luisdeimos) + - Ilia Sergunin (maranqz) - Daniel Richter (richtermeister) + - Sandro Hopf (senaria) - ChrisC - - JL - - Ilya Biryukov - Kim Laï Trinh - Johan de Ruijter - Jason Desrosiers - m.chwedziak + - marbul - Filippos Karailanidis - Andreas Frömer - Philip Frank - David Brooks - Lance McNearney + - Illia Antypenko (aivus) + - Jelizaveta Lemeševa (broken_core) + - Dominik Ritter (dritter) + - Frank Neff (fneff) - Volodymyr Kupriienko (greeflas) + - Ilya Biryukov (ibiryukov) + - Roma (memphys) + - Florian Caron (shalalalala) - Serhiy Lunak (slunak) - Wojciech Błoszyk (wbloszyk) - Jiri Barous @@ -1997,6 +1901,7 @@ The Symfony Connect username in parenthesis allows to get more information - abunch - tamcy - Mikko Pesari + - Aurélien Fontaine - ncou - Ian Carroll - caponica @@ -2016,10 +1921,11 @@ The Symfony Connect username in parenthesis allows to get more information - Foxprodev - developer-av - Max Summe - - WedgeSama + - Ema Panz + - Hugo Sales - Dale.Nash - - Felds Liscia - Chihiro Adachi (chihiro-adachi) + - Benjamin Georgeault (wedgesama) - Raphaëll Roussel - Tadcka - Beth Binkovitz @@ -2030,8 +1936,8 @@ The Symfony Connect username in parenthesis allows to get more information - Romain Geissler - Adrien Moiruad - Tomaz Ahlin - - Philip Ardery - Nasim + - AnotherSymfonyUser (arderyp) - Marcus Stöhr (dafish) - Daniel González Zaballos (dem3trio) - Emmanuel Vella (emmanuel.vella) @@ -2047,23 +1953,29 @@ The Symfony Connect username in parenthesis allows to get more information - Nathaniel Catchpole - Adrien Samson (adriensamson) - Samuel Gordalina (gordalina) - - Max Romanovsky (maxromanovsky) + - Maksym Romanowski (maxromanovsky) - Nicolas Eeckeloo (neeckeloo) - Andriy Prokopenko (sleepyboy) - - Mathieu Morlon + - Dariusz Ruminski - Ivo Valchev - Daniel Tschinder - Arnaud CHASSEUX + - Zlatoslav Desyatnikov + - Wickex + - tuqqu - Wojciech Gorczyca + - Neagu Cristian-Doru (cristian-neagu) + - Mathieu Morlon (glutamatt) - Rafał Muszyński (rafmus90) - Sébastien Decrême (sebdec) - Timothy Anido (xanido) - Mara Blaga - Rick Prent - skalpa - - Martin Eckhardt + - Kai + - Bartłomiej Zając - Pieter Jordaan - - Damien Tournoud + - Tournoud (damientournoud) - Michael Dowling (mtdowling) - Karlos Presumido (oneko) - Tony Vermeiren (tony) @@ -2072,23 +1984,27 @@ The Symfony Connect username in parenthesis allows to get more information - Kirill Lazarev - Thomas Counsell - BilgeXA - - r1pp3rj4ck - - phydevs - mmokhi - Serhii Smirnov - Robert Queck - Peter Bouwdewijn - Martins Eglitis - - mlively - Wouter Diesveld + - Romain + - Matěj Humpál - Amine Matmati + - Kristen Gilden - caalholm - Nouhail AL FIDI (alfidi) - Fabian Steiner (fabstei) - - Felipy Tavares Amorim (felipyamorim) + - Felipy Amorim (felipyamorim) - Guillaume Loulier (guikingone) - Klaus Silveira (klaussilveira) + - Michael Lively (mlivelyjr) - Pedro Casado (pdr33n) + - Pierre Grimaud (pgrimaud) + - Abderrahim (phydev) + - Attila Bukor (r1pp3rj4ck) - Alexander Janssen (tnajanssen) - Thomas Chmielowiec (chmielot) - Jānis Lukss @@ -2096,21 +2012,20 @@ The Symfony Connect username in parenthesis allows to get more information - Michael Zangerle - rkerner - Alex Silcock + - Raphael Hardt - Qingshan Luo - Ergie Gonzaga - Matthew J Mucklo - AnrDaemon + - SnakePin - Matthew Covey - Anthony Massard (decap94) - Emre Akinci (emre) - Chris Maiden (matason) - - fdgdfg (psampaz) + - psampaz (psampaz) - Andrea Ruggiero (pupax) - - Stéphane Seng - Maxwell Vandervelde - kaywalker - - Mike Meier - - Tim Jabs - Sebastian Ionescu - Robert Kopera - Pablo Ogando Ferreira @@ -2119,16 +2034,20 @@ The Symfony Connect username in parenthesis allows to get more information - Valentin VALCIU - Jeremiah VALERIE - Alexandre Beaujour - - Julien Menth + - Patrik Patie Gmitter - George Yiannoulopoulos - Yannick Snobbert - Kevin Dew - James Cowgill + - sensio + - Julien Menth (cfjulien) - Nicolas Schwartz (nicoschwartz) - - Patrik Gmitter (patie) + - Tim Jabs (rubinum) + - Stéphane Seng (stephaneseng) - Peter Schultz - Jonathan Gough - Benhssaein Youssef + - Benoit Leveque - bill moll - Benjamin Bender - PaoRuby @@ -2139,14 +2058,14 @@ The Symfony Connect username in parenthesis allows to get more information - Konrad Mohrfeldt - Lance Chen - Ciaran McNulty (ciaranmcnulty) + - Dominik Piekarski (dompie) - Andrew (drew) + - j4nr6n (j4nr6n) - kor3k kor3k (kor3k) + - Rares Sebastian Moldovan (raresmldvn) - Stelian Mocanita (stelian) - - Justin (wackymole) - - Flavian (2much) - Gautier Deuette - dsech - - mike - Gilbertsoft - tadas - Bastien Picharles @@ -2156,16 +2075,13 @@ The Symfony Connect username in parenthesis allows to get more information - Mephistofeles - Hoffmann András - LubenZA - - Olivier + - Victor Garcia - Juan Mrad - Denis Yuzhanin - - Youssef BENHSSAIEN + - Flavian Sierk - knezmilos13 - alireza - - Cyril PASCAL - Michael Bessolov - - pscheit - - Wybren Koelmans - Zdeněk Drahoš - Dan Harper - moldcraft @@ -2175,75 +2091,83 @@ The Symfony Connect username in parenthesis allows to get more information - Antonio Peric-Mazar (antonioperic) - César Suárez (csuarez) - Bjorn Twachtmann (dotbjorn) + - Marek Víger (freezy) - Wahyu Kristianto (kristories) - Tobias Genberg (lorceroth) + - Michael Simonson (mikes) - Nicolas Badey (nico-b) + - Olivier Scherler (oscherler) - Shane Preece (shane) - Stephan Wentz (temp) - Johannes Goslar - Geoff - georaldc - - Maarten de Boer - - Malte Wunsch - wusuopu - Markus Staab + - Wouter de Wild - povilas - Gavin Staniforth - bahram - Alessandro Tagliapietra (alex88) - - Biji (biji) + - Nikita Starshinov (biji) - Alex Teterin (errogaht) - Gunnar Lium (gunnarlium) + - Malte Wunsch (maltewunsch) - Marie Minasyan (marie.minassyan) + - Maarten de Boer (mdeboer) - Tiago Garcia (tiagojsag) - Artiom - Jakub Simon - Bouke Haarsma - mlievertz - Radosław Kowalewski - - Stefan Kleff - Enrico Schultz - JustDylan23 - - mschop + - Juraj Surman - Martin Eckhardt - natechicago - Victor - Andreas Allacher - Alexis + - Leonid Terentyev - Sergei Gorjunov - Jonathan Poston - Adrian Olek (adrianolek) + - Camille Dejoye (cdejoye) - cybernet (cybernet2u) - Jody Mickey (jwmickey) - Przemysław Piechota (kibao) - - Leonid Terentyev (li0n) + - Martin Schophaus (m_schophaus_adcada) - Martynas Sudintas (martiis) + - Stefan Kleff (stefanxl) - Thijs-jan Veldhuizen (tjveldhuizen) - ryunosuke - Bruno BOUTAREL - - victoria - John Stevenson - Francisco Facioni (fran6co) - Stanislav Gamayunov (happyproff) - Iwan van Staveren (istaveren) - Alexander McCullagh (mccullagh) - Paul L McNeely (mcneely) - - Andrei C. (moldman) - Povilas S. (povilas) - Laurent Negre (raulnet) - Sergey Fokin (tyraelqp) + - Victoria Quirante Ruiz (victoria) - Evrard Boulou - pborreli - Bernat Llibre - Boris Betzholz - Eric Caron + - Arnau González - 2manypeople - Wing - Thomas Bibb + - Stefan Koopmanschap - Joni Halme - Matt Farmer - catch - aetxebeste + - roromix - Vitali Tsyrkin - Juga Paazmaya - Alexandre Segura @@ -2258,24 +2182,25 @@ The Symfony Connect username in parenthesis allows to get more information - WaiSkats - Morimoto Ryosuke - Ikhsan Agustian - - Arnau González (arnaugm) + - Benoit Lévêque (benoit_leveque) - Simon Bouland (bouland) - Christoph König (chriskoenig) + - Dmytro Pigin (dotty) - Jibé Barth (jibbarth) - Jm Aribau (jmaribau) - Matthew Foster (mfoster) - Reyo Stallenberg (reyostallenberg) - Paul Seiffert (seiffert) - Vasily Khayrulin (sirian) - - Stefan Koopmanschap (skoop) - Stas Soroka (stasyan) - Stefan Hüsges (tronsha) - Jake Bishop (yakobeyak) - Dan Blows + - popnikos - Matt Wells - - Sander van der Vlugt - Nicolas Appriou - stloyd + - Tito Costa - Andreas - Chris Tickner - Andrew Coulton @@ -2283,12 +2208,14 @@ The Symfony Connect username in parenthesis allows to get more information - Jeremy Benoist - Michal Gebauer - Phil Davis + - Thiago Melo - Gleb Sidora - David Stone - Giorgio Premi - Gerhard Seidel (gseidel) - Jovan Perovic (jperovic) - Pablo Maria Martelletti (pmartelletti) + - Sander van der Vlugt (stranding) - Yassine Guedidi (yguedidi) - Waqas Ahmed - Bert Hekman @@ -2297,7 +2224,6 @@ The Symfony Connect username in parenthesis allows to get more information - Houziaux mike - Phobetor - Eric Schildkamp - - Andreas - Markus - agaktr - Mostafa @@ -2313,77 +2239,82 @@ The Symfony Connect username in parenthesis allows to get more information - Gunther Konig - Joe Springe - Mickael GOETZ + - DerStoffel + - Flinsch - Maciej Schmidt - botbotbot - Timon van der Vorm - nuncanada + - Thierry Marianne - František Bereň - - Kamil Madejski - G.R.Dalenoort + - Quentin Dreyer - Jeremiah VALERIE - Mike Francis + - Almog Baku (almogbaku) - Vladimir Khramtsov (chrome) - Gerd Christian Kunze (derdu) - - Christoph Nissle (derstoffel) - Denys Voronin (hurricane) - Ionel Scutelnicu (ionelscutelnicu) + - Jordan de Laune (jdelaune) - Juan Gonzalez Montes (juanwilde) + - Kamil Madejski (kmadejski) - Mathieu Dewet (mdewet) + - none (nelexa) - Nicolas Tallefourtané (nicolab) - Botond Dani (picur) - Rémi Faivre (rfv) - - Thierry Marianne (thierrymarianne) - Nick Stemerdink + - Bernhard Rusch - David Stone - - jjanvier - - Julius Beckmann + - Grayson Koonce - Ruben Jansen - Marc Biorklund - shreypuranik - - loru88 - Thibaut Salanon - Romain Dorgueil - Christopher Parotat - Dennis Haarbrink - Urban Suppiger - - me_shaon - 蝦米 - - Grayson Koonce (breerly) + - Julius Beckmann (h4cc) - Andrey Helldar (helldar) + - Julien JANVIER (jjanvier) - Karim Cassam Chenaï (ka) - - Maksym Slesarenko (maksym_slesarenko) + - Lorenzo Adinolfi (loru88) - Marcello Mönkemeyer (marcello-moenkemeyer) + - Ahmed Shamim Hassan (me_shaon) - Michal Kurzeja (mkurzeja) - Nicolas Bastien (nicolas_bastien) - Sander De la Marche (sanderdlm) - Nikola Svitlica (thecelavi) - - Denis (yethee) - Andrew Zhilin (zhil) - Sjors Ottjes - azjezz - Andy Stanberry - Felix Marezki - Normunds - - Luiz “Felds” Liscia - Yuri Karaban - Johan - Thomas Rothe - Edwin - - Martin - nietonfir - Andriy + - Taylor Otwell - alefranz - David Barratt - Andrea Giannantonio - Pavel.Batanov - avi123 - Pavel Prischepa + - Philip Dahlstrøm + - Sami Mussbach - qzylalala - alsar - downace - Aarón Nieves Fernández - - Mike Meier - Mikolaj Czajkowski + - Ph3nol - Kirill Saksin - Shiro - Reda DAOUDI @@ -2395,10 +2326,13 @@ The Symfony Connect username in parenthesis allows to get more information - Farid Jalilov - Christiaan Wiesenekker - Florent Olivaud + - Foxprodev + - Eric Hertwig - Sergey Panteleev - JakeFr - Dmitry Hordinky - Oliver Klee + - Niels Robin-Aubertin - Simon Sargeant - efeen - Mikko Ala-Fossi @@ -2421,36 +2355,30 @@ The Symfony Connect username in parenthesis allows to get more information - Jawira Portugal (jawira) - Johannes Müller (johmue) - Jordi Llonch (jordillonch) + - julien_tempo1 (julien_tempo1) - Roman Igoshin (masterro) - Nicholas Ruunu (nicholasruunu) - Jeroen van den Nieuwenhuisen (nieuwenhuisen) - - Cyril Pascal (paxal) - - Cédric Dugat (ph3nol) - - Philip Dahlstrøm (phidah) - Pierre Rebeilleau (pierrereb) - Milos Colakovic (project2481) - Raphael de Almeida (raphaeldealmeida) - Rénald Casagraude (rcasagraude) - Robin Duval (robin-duval) - - Grinbergs Reinis (shima5) - Artem Lopata (bumz) - alex - - Nicole Cordes - - Nicolas PHILIPPE - Roman Orlov - Simon Ackermann - VolCh - Alexey Popkov - Gijs Kunze - Artyom Protaskin + - Steven Dubois - Nathanael d. Noblet - helmer - ged15 - Daan van Renterghem - - Nicole Cordes - Bálint Szekeres - amcastror - - Alexander Li (aweelex) - Bram Van der Sype (brammm) - Guile (guile) - Mark Beech (jaybizzle) @@ -2459,19 +2387,22 @@ The Symfony Connect username in parenthesis allows to get more information - Mauro Foti (skler) - Thibaut Arnoud (thibautarnoud) - Yannick Warnier (ywarnier) + - Jörn Lang - Kevin Decherf + - Paul LE CORRE - Jason Woods - Christian Weiske - Maria Grazia Patteri - klemens - dened + - jpauli - Dmitry Korotovsky - - mcorteel - Michael van Tricht - ReScO - - JohJohan - Tim Strehle + - Sébastien COURJEAN - Sam Ward + - Hans N. Hjort - Walther Lalk - Adam - Ivo @@ -2481,24 +2412,23 @@ The Symfony Connect username in parenthesis allows to get more information - devel - taiiiraaa - Ali Tavafi - - Trevor Suarez - gedrox - Viet Pham - Alan Bondarchuk + - Pchol - dropfen - Andrey Chernykh - Edvinas Klovas - Drew Butler - Peter Breuls + - Kevin EMO - Chansig - Tischoi - divinity76 - Andreas Hasenack - J Bruni - Alexey Prilipko - - Dmitriy Fedorenko - vlakoff - - bertillon - thib92 - Yiorgos Kalligeros - Rudolf Ratusiński @@ -2509,36 +2439,42 @@ The Symfony Connect username in parenthesis allows to get more information - AmsTaFF (amstaff) - Simon Müller (boscho) - Yannick Bensacq (cibou) - - Damien (damien_vauchel) + - Cyrille Bourgois (cyrilleb) + - Damien Vauchel (damien_vauchel) + - Dmitrii Fedorenko (dmifedorenko) - Frédéric G. Marand (fgm) - Freek Van der Herten (freekmurze) - Luca Genuzio (genuzio) - - Hans Nilsson (hansnilsson) - Andrew Marcinkevičius (ifdattic) - Ioana Hazsda (ioana-hazsda) - Jan Marek (janmarek) - Mark de Haan (markdehaan) + - Maxime Corteel (mcorteel) - Dan Patrick (mdpatrick) + - Mathieu MARCHOIS (mmar) - naitsirch (naitsirch) - Geoffrey Monte (numerogeek) - Martijn Boers (plebian) - Plamen Mishev (pmishev) - Pedro Magalhães (pmmaga) - Rares Vlaseanu (raresvla) + - Trevor N. Suarez (rican7) - Sergii Dolgushev (serhey) + - Clément Bertillon (skigun) - Rein Baarsma (solidwebcode) - tante kinast (tante) - Stephen Lewis (tehanomalousone) - - Ahmed Hannachi (tiecoders) + - Adam RANDI (tiecoders) - Vincent LEFORT (vlefort) - Walid BOUGHDIRI (walidboughdiri) - wicliff wolda (wickedone) - Wim Molenberghs (wimm) - Darryl Hein (xmmedia) - - Sadicov Vladimir (xtech) - - Kevin EMO (zarcox) + - Vladimir Sadicov (xtech) - Marcel Berteler - sdkawata + - Peter van Dommelen + - Tim van Densen - Andrzej - Alexander Zogheb - Rémi Blaise @@ -2548,14 +2484,12 @@ The Symfony Connect username in parenthesis allows to get more information - root - pf - Vincent Chalnot - - James Hudson - Tom Maguire - Mateusz Lerczak - Richard Quadling - Rainrider - David Zuelke - Adrian - - Oleg Andreyev - Oliver Eglseder - neFAST - zcodes @@ -2572,31 +2506,34 @@ The Symfony Connect username in parenthesis allows to get more information - John Nickell (jrnickell) - Martin Mayer (martin) - Grzegorz Łukaszewicz (newicz) + - Omar Yepez (oyepez003) - Jonny Schmid (schmidjon) - Toby Griffiths (tog) + - Ashura - Götz Gottwald - Alessandra Lai - - Veres Lajos - Ernest Hymel - Andrea Civita - Nicolás Alonso - LoginovIlya - Nick Chiu - - grifx - Robert Campbell - Matt Lehner + - carlos-ea - Olexandr Kalaidzhy - Helmut Januschka + - Jérémy Benoist - Hein Zaw Htet™ - Ruben Kruiswijk - Cosmin-Romeo TANASE + - Ferran Vidal - Michael J - youssef saoubou - Joseph Maarek - Alexander Menk - Alex Pods - - hadriengem - timaschew + - Jelle Kapitein - Jochen Mandl - elattariyassine - Marin Nicolae @@ -2605,9 +2542,13 @@ The Symfony Connect username in parenthesis allows to get more information - Carlos Tasada - Haritz - Matthieu Prat - - Grummfy + - Brieuc Thomas - zors1 - Peter Simoncic + - lerminou + - Ahmad El-Bardan + - mantulo + - pdragun - Paul Le Corre - Noel Light-Hilary - Filipe Guerra @@ -2618,28 +2559,28 @@ The Symfony Connect username in parenthesis allows to get more information - Marcos Labad - Per Modin - David Windell + - Antoine M - Frank Jogeleit - Ondřej Frei - Volodymyr Panivko - Gabriel Birke - - skafandri - Derek Bonner - martijn - Jenne van der Meer + - annesosensio + - NothingWeAre - Storkeus + - goabonga - Alan Chen - Anton Zagorskii - ging-dev - zakaria-amm - - insidestyles - Maerlyn - Even André Fiskvik - Agata - dakur - Matthias Schmidt - florian-michael-mast - - Александр Ли - - Arjan Keeman - Vlad Dumitrache - Alex Kalineskou - Erik van Wingerden @@ -2649,8 +2590,9 @@ The Symfony Connect username in parenthesis allows to get more information - Alexis MARQUIS - Gerrit Drost - Linnaea Von Lavia + - Simon Mönch - Bastien Clément - - Julius Šakalys + - Thomas Talbot - Javan Eskander - Lenar Lõhmus - Cristian Gonzalez @@ -2659,23 +2601,21 @@ The Symfony Connect username in parenthesis allows to get more information - hainey - Juan M Martínez - Gilles Gauthier + - Benjamin Franzke - Pavinthan - Sylvain METAYER - ddebree - Gyula Szucs - Tomas Liubinas - Ivo Valchev - - Alex - Jan Hort - Klaas Naaijkens - - Daniel González Cerviño - Rafał - - Ahmad El-Bardan (absahmad) - Adria Lopez (adlpz) - Aaron Scherer (aequasi) + - baron (bastien) - Rosio (ben-rosio) - Simon Paarlberg (blamh) - - Brieuc THOMAS (brieucthomas) - Masao Maeda (brtriver) - Damien Harper (damien.harper) - Darius Leskauskas (darles) @@ -2688,20 +2628,22 @@ The Symfony Connect username in parenthesis allows to get more information - Dennis Smink (dsmink) - Franz Liedke (franzliedke) - Gaylord Poillon (gaylord_p) - - Christophe BECKER (goabonga) - gondo (gondo) + - Joris Garonian (grifx) + - Grummfy (grummfy) + - Hadrien Cren (hcren) - Gusakov Nikita (hell0w0rd) - - Osman Üngür (import) + - Oz (import) - Jaap van Otterdijk (jaapio) - Javier Núñez Berrocoso (javiernuber) - Jelle Bekker (jbekker) - - Jonathan Sui Lioung Lee Slew (jlslew) - - Johan Vlaar (johjohan) - Giovanni Albero (johntree) - Jorge Martin (jorgemartind) - Joeri Verdeyen (jverdeyen) - Kevin Verschaeve (keversc) - Kevin Herrera (kherge) + - Kubicki Kamil (kubik) + - Simon Leblanc (leblanc_simon) - Luis Ramón López López (lrlopez) - Vladislav Nikolayev (luxemate) - Martin Mandl (m2mtech) @@ -2711,6 +2653,7 @@ The Symfony Connect username in parenthesis allows to get more information - Michael Pohlers (mick_the_big) - Misha Klomp (mishaklomp) - mlpo (mlpo) + - Mikhail Prosalov (mprosalov) - Ulrik Nielsen (mrbase) - Marek Šimeček (mssimi) - Dmitriy Tkachenko (neka) @@ -2722,19 +2665,23 @@ The Symfony Connect username in parenthesis allows to get more information - Pablo Monterde Perez (plebs) - Pierre-Olivier Vares (povares) - Jimmy Leger (redpanda) + - Ronny López (ronnylt) + - Julius (sakalys) - Samaël Villette (samadu61) + - Dmitry (staratel) - Marcin Szepczynski (szepczynski) + - Tito Miguel Costa (titomiguelcosta) + - Simone Di Maulo (toretto460) - Cyrille Jouineau (tuxosaurus) + - Lajos Veres (vlajos) - Vladimir Chernyshev (volch) - Wim Godden (wimg) - - Xav` (xavismeh) - Yorkie Chadwick (yorkie76) - Maxime Aknin (3m1x4m) - Geordie - Exploit.cz - GuillaumeVerdon - - Angel Fernando Quiroz Campos - - Ondrej Mirtes + - ureimers - akimsko - Youpie - Jason Stephens @@ -2747,8 +2694,8 @@ The Symfony Connect username in parenthesis allows to get more information - Matthias Derer - vladyslavstartsev - Saem Ghani + - Kévin - Stefan Oderbolz - - Curtis - Gabriel Moreira - Alexey Popkov - ChS @@ -2760,44 +2707,49 @@ The Symfony Connect username in parenthesis allows to get more information - Evgeniy Tetenchuk - Sjoerd Adema - Shrey Puranik + - Evgeniy Koval - Lars Moelleken - dasmfm - Claas Augner - Mathias Geat + - Angel Fernando Quiroz Campos (angelfqc) - Arnaud Buathier (arnapou) + - Benoit Galati (benoitgalati) + - Curtis (ccorliss) - chesteroni (chesteroni) - Mauricio Lopez (diaspar) - HADJEDJ Vincent (hadjedjvincent) - Daniele Cesarini (ijanki) - Ismail Asci (ismailasci) - Jeffrey Moelands (jeffreymoelands) - - Simon CONSTANS (kosssi) + - Simon (kosssi) + - Ondřej Mirtes (mirtes) - Paulius Jarmalavičius (pjarmalavicius) - - Ramon Henrique Ornelas (ramonornela) - - Ricardo de Vries (ricknox) + - Ramon Ornelas (ramonornela) + - Ricardo de Vries (ricardodevries) - Ruslan Zavacky (ruslanzavacky) - Stefano Cappellini (stefano_cappellini) - Thomas Dutrion (theocrite) - Till Klampaeckel (till) - Tobias Weinert (tweini) - - Ulf Reimers (ureimers) - Wotre - goohib - Tom Counsell + - Sepehr Lajevardi - George Bateman - Xavier HAUSHERR - - Ron Gähler - Edwin Hageman - Mantas Urnieža - temperatur + - Paul Andrieux - misterx - Cas - arend - Vincent Godé - - Dusan Kasan - helmi - Michael Steininger - Nardberjean + - ghazy ben ahmed - Karolis - Myke79 - jersoe @@ -2806,7 +2758,6 @@ The Symfony Connect username in parenthesis allows to get more information - Piers Warmers - Sylvain Lorinet - klyk50 - - Andreas Lutro - jc - BenjaminBeck - Aurelijus Rožėnas @@ -2820,6 +2771,7 @@ The Symfony Connect username in parenthesis allows to get more information - Matt Fields - Olatunbosun Egberinde - Andras Debreczeni + - Knallcharge - Vladimir Sazhin - Michel Bardelmeijer - Tomas Kmieliauskas @@ -2830,14 +2782,15 @@ The Symfony Connect username in parenthesis allows to get more information - Billie Thompson - lol768 - jamogon + - Antoine LA - Vyacheslav Slinko + - Benjamin Laugueux - Jakub Chábek - Johannes - Jörg Rühl - George Dietrich - jannick-holm - wesleyh - - sergey - Menno Holtkamp - Ser5 - Michael Hudson-Doyle @@ -2845,6 +2798,7 @@ The Symfony Connect username in parenthesis allows to get more information - Karim Miladi - Michael Genereux - patrick-mcdougle + - Tyler Stroud - Dariusz Czech - Clemens Krack - Bruno Baguette @@ -2859,18 +2813,18 @@ The Symfony Connect username in parenthesis allows to get more information - Michal Forbak - Drew Butler - Alexey Berezuev + - pawel-lewtak - Pierrick Charron - Steve Müller + - omerida - Andras Ratz - andreabreu98 - gechetspr - brian978 - Michael Schneider - - Cédric Bertolini - n-aleha - Talha Zekeriya Durmuş - Anatol Belski - - Şəhriyar İmanov - Alexis BOYER - bch36 - Kaipi Yann @@ -2881,22 +2835,27 @@ The Symfony Connect username in parenthesis allows to get more information - Guillaume Aveline - Adrian Philipp - James Michael DuPont + - Markus Tacker - Kasperki - dima-gr - Tammy D - Rodolfo Ruiz + - tsilefy - Enrico - Ryan Rud - - Christopher Georg - Ondrej Slinták + - Jérémie Broutier - vlechemin - Brian Corrigan - Ladislav Tánczos + - Brian Freytag - Skorney - Lucas Matte + - Success Go - fmarchalemisys - mieszko4 - Steve Preston + - ibasaw - Wojciech Skorodecki - Kevin Frantz - Neophy7e @@ -2904,6 +2863,7 @@ The Symfony Connect username in parenthesis allows to get more information - Arrilot - ampaze - Chris McGehee + - Shaun Simmons - Markus Staab - Pierre-Louis LAUNAY - djama @@ -2915,21 +2875,24 @@ The Symfony Connect username in parenthesis allows to get more information - Jon Cave - Sébastien HOUZE - Abdulkadir N. A. + - Markus Klein - Adam Klvač - Bruno Nogueira Nascimento Wowk - Tomanhez - satalaondrej + - Matthias Dötsch - jonmldr - Yevgen Kovalienia - Lebnik - - nsbx - Shude - RTUnreal - Richard Hodgson - Sven Fabricius - Ondřej Führer + - Bogdan - Sema - Thorsten Hallwas + - Brian Freytag - Marco Pfeiffer - Alex Nostadt - Michael Squires @@ -2940,17 +2903,20 @@ The Symfony Connect username in parenthesis allows to get more information - Yuriy Potemkin - Emilie Lorenzo - enomotodev - - Babichev Maxim - Edvin Hultberg + - Vincent - Benjamin Long - Kévin Gonella - Ben Miller - Peter Gribanov + - Matteo Galli + - Bart Ruysseveldt - Ash014 + - Loenix - kwiateusz - - jspee - Ilya Bulakh - David Soria Parra + - Simon Frost - Sergiy Sokolenko - Cantepie - detinkin @@ -2964,47 +2930,46 @@ The Symfony Connect username in parenthesis allows to get more information - oscartv - DanSync - Peter Zwosta + - Michal Čihař - parhs - Harry Wiseman - Diego Campoy - - TeLiXj - Oncle Tom - Sam Anthony - Christian Stocker - Oussama Elgoumri + - David Lima - Steve Marvell - Dawid Nowak - Lesnykh Ilia - Shyim - sabruss - darnel - - Karolis Daužickas - Nicolas - Sergio Santoro - tirnanog06 - Andrejs Leonovs + - Alfonso Fernández García - phc - Дмитрий Пацура - Signor Pedro - Matthias Larisch - Maxime P - - ilyes kooli - - Ilia Lazarev + - Sean Templeton - Michaël VEROUX - Julia - Lin Lu - arduanov - sualko - - Molkobain - Yendric - ADmad - Nicolas Roudaire - Matthias Meyer - Temuri Takalandze (abgeo) - Bernard van der Esch (adeptofvoltron) - - Alfonso (afgar) - Andreas Forsblom (aforsblo) - Alex Olmos (alexolmos) + - Cedric BERTOLINI (alsciende) - Antonio Mansilla (amansilla) - Robin Kanters (anddarerobin) - Juan Ases García (ases) @@ -3012,6 +2977,7 @@ The Symfony Connect username in parenthesis allows to get more information - Daniel Basten (axhm3a) - Benedict Massolle (bemas) - Gerard Berengue Llobera (bere) + - Ronny (big-r) - Bernd Matzner (bmatzner) - Anton (bonio) - Bram Tweedegolf (bram_tweedegolf) @@ -3019,67 +2985,71 @@ The Symfony Connect username in parenthesis allows to get more information - Choong Wei Tjeng (choonge) - Kousuke Ebihara (co3k) - Loïc Vernet (coil) - - Christoph Schaefer (cvschaefer) + - Christoph Vincent Schaefer (cvschaefer) - Damon Jones (damon__jones) - Alexandre Fiocre (demos77) - Łukasz Giza (destroyer) - Daniel Londero (dlondero) + - Dušan Kasan (dudo1904) - Sebastian Landwehr (dword123) - Adel ELHAIBA (eadel) - Damián Nohales (eagleoneraptor) - Jordane VASPARD (elementaire) - Elliot Anderson (elliot) + - Erwan Nader (ernadoo) - Fabien D. (fabd) - Faizan Akram Dar (faizanakram) - Carsten Eilers (fnc) - Sorin Gitlan (forapathy) - Yohan Giarelli (frequence-web) - - Gasan Gouseynov (gassan) + - Gasan Guseynov (gassan) - Gerry Vandermaesen (gerryvdm) - - Ghazy Ben Ahmed (ghazy) - - Arash Tabriziyan (ghost098) + - Arash Tabrizian (ghost098) - Greg Szczotka (greg606) - - ibasaw (ibasaw) + - Ian Littman (iansltx) - Nathan DIdier (icz) - Vladislav Krupenkin (ideea) - Ilija Tovilo (ilijatovilo) - Peter Orosz (ill_logical) + - Ilia Lazarev (ilzrv) - Imangazaliev Muhammad (imangazaliev) + - Arkadiusz Kondas (itcraftsmanpl) - j0k (j0k) - - Jeremie Broutier (jbroutier) - joris de wit (jdewit) - Jérémy CROMBEZ (jeremy) - Jose Manuel Gonzalez (jgonzalez) - Joachim Krempel (jkrempel) - Jorge Maiden (jorgemaiden) + - Joao Paulo V Martins (jpjoao) - Justin Rainbow (jrainbow) - Juan Luis (juanlugb) - JuntaTom (juntatom) - Julien Manganne (juuuuuu) - Ismail Faizi (kanafghan) + - Karolis Daužickas (kdauzickas) - Sébastien Armand (khepin) - Pierre-Chanel Gauthier (kmecnin) - Krzysztof Menżyk (krymen) - samuel laulhau (lalop) - Laurent Bachelier (laurentb) - Luís Cobucci (lcobucci) + - Jérémy (libertjeremy) - Mehdi Achour (machour) - Mamikon Arakelyan (mamikon) - - Matthieu Moquet (mattketmo) + - Matt Ketmo (mattketmo) - Moritz Borgmann (mborgmann) - Mathias Brodala (mbrodala) - - Michal Čihař (mcihar) - Matt Drollette (mdrollette) - Adam Monsen (meonkeys) - Mike Milano (mmilano) - - Youssef Benhssaien (moghreb) - - diego aguiar (mollokhan) + - Guillaume Lajarige (molkobain) + - Diego Aguiar (mollokhan) - Ala Eddine Khefifi (nayzo) - emilienbouard (neime) - Nicholas Byfleet (nickbyfleet) + - Nicolas Bondoux (nsbx) - ollie harridge (ollietb) - - Paul Andrieux (paulandrieux) - - Paweł Szczepanek (pauluz) + - Pawel Szczepanek (pauluz) - Philippe Degeeter (pdegeeter) - PLAZANET Pierre (pedrotroller) - Christian López Espínola (penyaskito) @@ -3088,35 +3058,36 @@ The Symfony Connect username in parenthesis allows to get more information - Alex Carol (picard89) - Daniel Perez Pinazo (pitiflautico) - Igor Tarasov (polosatus) - - Maxim Pustynnikov (pustynnikov) - - Ralf Kuehnel (ralfkuehnel) + - Maksym Pustynnikov (pustynnikov) + - Ralf Kühnel (ralfkuehnel) - Ramazan APAYDIN (rapaydin) - - Brayden Williams (redstar504) + - Babichev Maxim (rez1dent3) - Rich Sage (richsage) - - Bart Ruysseveldt (ruyss) - scourgen hung (scourgen) - Sebastian Busch (sebu) - - Sepehr Lajevardi (sepehr) + - Sergey Stavichenko (sergey_stavichenko) - André Filipe Gonçalves Neves (seven) - Bruno Ziegler (sfcoder) - Andrea Giuliano (shark) + - Şəhriyar İmanov (shehriyari) - Thomas Baumgartner (shoplifter) - Schuyler Jager (sjager) + - Christopher Georg (sky-chris) - Volker (skydiablo) - Francisco Alvarez (sormes) - Julien Sanchez (sumbobyboys) - Stephan Vierkant (svierkant) + - Ron Gähler (t-ronx) - Guillermo Gisinger (t3chn0r) - - Markus Tacker (tacker) - Tom Newby (tomnewbyau) - Andrew Clark (tqt_andrew_clark) + - Aaron Piotrowski (trowski) - David Lumaye (tux1124) - Roman Tymoshyk (tymoshyk) - - Tyler Stroud (tystr) - Moritz Kraft (userfriendly) - Víctor Mateo (victormateo) - - Vincent (vincent1870) - - David Herrmann (vworldat) + - Vincent MOULENE (vints24) + - David Grüner (vworldat) - Eugene Babushkin (warl) - Wouter Sioen (wouter_sioen) - Xavier Amado (xamado) @@ -3128,11 +3099,13 @@ The Symfony Connect username in parenthesis allows to get more information - Kovacs Nicolas - craigmarvelley - Stano Turza - - simpson + - Antoine Leblanc - drublic + - Andre Johnson - MaPePeR - Andreas Streichardt - Alexandre Segura + - Marco Pfeiffer - Vivien - Pascal Hofmann - david-binda @@ -3140,7 +3113,6 @@ The Symfony Connect username in parenthesis allows to get more information - Gustavo Adrian - damaya - Kevin Weber - - Ben Scott - Alexandru Năstase - Dionysis Arvanitis - Sergey Fedotov @@ -3153,9 +3125,8 @@ The Symfony Connect username in parenthesis allows to get more information - Jan Emrich - Anne-Julia Seitz - Mark Topper + - Romain - Xavier REN - - Zander Baldwin - - Philipp Scheit - max - Alexander Bauer (abauer) - Ahmad Mayahi (ahmadmayahi) @@ -3166,14 +3137,19 @@ The Symfony Connect username in parenthesis allows to get more information - Bogdan Rancichi (devck) - Daniel Kolvik (dkvk) - Marc Lemay (flug) + - Gabriel Solomon (gabrielsolomon) - Henne Van Och (hennevo) - Jeroen De Dauw (jeroendedauw) - Maxime COLIN (maximecolin) - Muharrem Demirci (mdemirci) - Evgeny Z (meze) + - Aleksandar Dimitrov (netbull) - Pierre Geyer (ptheg) - Thomas BERTRAND (sevrahk) + - Vladislav (simpson) - Matej Žilák (teo_sk) + - Gary Houbre (thegarious) - Vladislav Vlastovskiy (vlastv) - RENAUDIN Xavier (xorrox) - Yannick Vanhaeren (yvh) + - Zan Baldwin (zanderbaldwin) From 4c958d14f81e4ae5f25be00513357b68a2b108e5 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:04:21 +0200 Subject: [PATCH 03/59] Update VERSION for 4.4.42 --- 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 444939421ac6e..46838909f9b02 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - public const VERSION = '4.4.42-DEV'; + public const VERSION = '4.4.42'; public const VERSION_ID = 40442; public const MAJOR_VERSION = 4; public const MINOR_VERSION = 4; public const RELEASE_VERSION = 42; - public const EXTRA_VERSION = 'DEV'; + public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '11/2022'; public const END_OF_LIFE = '11/2023'; From 5df2a7206edb4f6b300997b4e57d390fe8e839e1 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:07:57 +0200 Subject: [PATCH 04/59] Bump Symfony version to 4.4.43 --- 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 46838909f9b02..26aa46dd24058 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - public const VERSION = '4.4.42'; - public const VERSION_ID = 40442; + public const VERSION = '4.4.43-DEV'; + public const VERSION_ID = 40443; public const MAJOR_VERSION = 4; public const MINOR_VERSION = 4; - public const RELEASE_VERSION = 42; - public const EXTRA_VERSION = ''; + public const RELEASE_VERSION = 43; + public const EXTRA_VERSION = 'DEV'; public const END_OF_MAINTENANCE = '11/2022'; public const END_OF_LIFE = '11/2023'; From a2067814b4675aba37dcd274c817a5b0975f7cef Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:09:05 +0200 Subject: [PATCH 05/59] Update CHANGELOG for 5.4.9 --- CHANGELOG-5.4.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/CHANGELOG-5.4.md b/CHANGELOG-5.4.md index 14694594d1031..c445966b598d9 100644 --- a/CHANGELOG-5.4.md +++ b/CHANGELOG-5.4.md @@ -7,6 +7,50 @@ in 5.4 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/v5.4.0...v5.4.1 +* 5.4.9 (2022-05-27) + + * bug #46386 [Console]  Fix missing negative variation of negatable options in shell completion (GromNaN) + * bug #46448 [DependencyInjection] Fix "proxy" tag: resolve its parameters and pass it to child definitions (nicolas-grekas) + * bug #46442 [FrameworkBundle] Revert "bug #46125 Always add CacheCollectorPass (fancyweb)" (chalasr) + * bug #46443 [DoctrineBridge] Don't reinit managers when they are proxied as ghost objects (nicolas-grekas) + * bug #46427 [FrameworkBundle] fix wiring of annotations.cached_reader (nicolas-grekas) + * bug #46425 [DependencyInjection] Ignore unused bindings defined by attribute (nicolas-grekas) + * bug #46434 [FrameworkBundle] Fix BC break in abstract config commands (yceruto) + * bug #46424 [Form] do not accept array input when a form is not multiple (xabbuh) + * bug #46367 [Mime] Throw exception when body in Email attach method is not ok (alamirault) + * bug #46421 [VarDumper][VarExporter] Deal with DatePeriod->include_end_date on PHP 8.2 (nicolas-grekas) + * bug #46401 [Cache] Throw when "redis_sentinel" is used with a non-Predis "class" option (buffcode) + * bug #46414 Bootstrap 4 fieldset for row errors (konradkozaczenko) + * bug #46412 [FrameworkBundle] Fix dumping extension config without bundle (yceruto) + * bug #46382 [HttpClient] Honor "max_duration" when replacing requests with async decorators (nicolas-grekas) + * bug #46407 [Filesystem] Safeguard (sym)link calls (derrabus) + * bug #46098 [Form] Fix same choice loader with different choice values (HeahDude) + * bug #46380 [HttpClient] Add missing HttpOptions::setMaxDuration() (nicolas-grekas) + * bug #46249 [HttpFoundation] [Session] Regenerate invalid session id (peter17) + * bug #46328 [Config] Allow scalar configuration in PHP Configuration (jderusse, HypeMC) + * bug #46366 [Mime] Add null check for EmailHeaderSame (magikid) + * bug #46364 [Config] Fix looking for single files in phars with GlobResource (nicolas-grekas) + * bug #46365 [HttpKernel] Revert "bug #46327 Allow ErrorHandler ^5.0 to be used" (nicolas-grekas) + * bug #46114 Fixes "Incorrectly nested style tag found" error when using multi-line header content (Perturbatio) + * bug #46325 [Ldap] Fix LDAP connection options (buffcode) + * bug #46341 Fix aliases handling in command name completion (Seldaek) + * bug #46317 [Security/Http] Ignore invalid URLs found in failure/success paths (nicolas-grekas) + * bug #46309 [Security] Fix division by zero (tvlooy) + * bug #46327 [HttpKernel] Allow ErrorHandler ^5.0 to be used in HttpKernel 4.4 (mpdude) + * bug #46297 [Serializer] Fix JsonSerializableNormalizer ignores circular reference handler in $context (BreyndotEchse) + * bug #46291 [Console] Suppress unhandled error in some specific use-cases. (rw4lll) + * bug #46302 [ErrorHandler] Fix list of tentative return types (nicolas-grekas) + * bug #45981 [Serializer][PropertyInfo] Fix support for "false" built-in type on PHP 8.2 (alexandre-daubois) + * bug #46277 [HttpKernel] Fix SessionListener without session in request (edditor) + * bug #46282 [DoctrineBridge] Treat firstResult === 0 like null (derrabus) + * bug #46239 [Translation] Refresh local translations on PushCommand if the provider has domains (Florian-B) + * bug #46278 [Workflow] Fix deprecated syntax for interpolated strings (nicolas-grekas) + * bug #46264 [Console] Better required argument check in InputArgument (jnoordsij) + * bug #46262 [EventDispatcher] Fix removing listeners when using first-class callable syntax (javer) + * bug #46216 [Form] fix populating single widget time view data with different timezones (xabbuh) + * bug #46221 [DomCrawler][VarDumper] Fix html-encoding emojis (nicolas-grekas) + * bug #46167 [VarExporter] Fix exporting DateTime objects on PHP 8.2 (nicolas-grekas) + * 5.4.8 (2022-04-27) * bug #46154 [Mailer] Restore X-Transport after failure (zenas1210) From eb7aca969fc9391b67081f8df83732aa6d756aa4 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:09:08 +0200 Subject: [PATCH 06/59] Update VERSION for 5.4.9 --- 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 e3004cf4f70ae..ab99b29ec5a34 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -78,12 +78,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static $freshCache = []; - public const VERSION = '5.4.9-DEV'; + public const VERSION = '5.4.9'; public const VERSION_ID = 50409; public const MAJOR_VERSION = 5; public const MINOR_VERSION = 4; public const RELEASE_VERSION = 9; - public const EXTRA_VERSION = 'DEV'; + public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '11/2024'; public const END_OF_LIFE = '11/2025'; From b0c9736b169dd5ce70b02b4abb478955fa30e54c Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:14:02 +0200 Subject: [PATCH 07/59] Bump Symfony version to 5.4.10 --- 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 ab99b29ec5a34..3962146803f5b 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -78,12 +78,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static $freshCache = []; - public const VERSION = '5.4.9'; - public const VERSION_ID = 50409; + public const VERSION = '5.4.10-DEV'; + public const VERSION_ID = 50410; public const MAJOR_VERSION = 5; public const MINOR_VERSION = 4; - public const RELEASE_VERSION = 9; - public const EXTRA_VERSION = ''; + public const RELEASE_VERSION = 10; + public const EXTRA_VERSION = 'DEV'; public const END_OF_MAINTENANCE = '11/2024'; public const END_OF_LIFE = '11/2025'; From e1394007e51ea32e36c8c115ea924eeebf925cea Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:14:25 +0200 Subject: [PATCH 08/59] Update CHANGELOG for 6.0.9 --- CHANGELOG-6.0.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/CHANGELOG-6.0.md b/CHANGELOG-6.0.md index 6917e182fc50e..94dd5df1efe5d 100644 --- a/CHANGELOG-6.0.md +++ b/CHANGELOG-6.0.md @@ -7,6 +7,52 @@ in 6.0 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/v6.0.0...v6.0.1 +* 6.0.9 (2022-05-27) + + * bug #46386 [Console]  Fix missing negative variation of negatable options in shell completion (GromNaN) + * bug #46448 [DependencyInjection] Fix "proxy" tag: resolve its parameters and pass it to child definitions (nicolas-grekas) + * bug #46442 [FrameworkBundle] Revert "bug #46125 Always add CacheCollectorPass (fancyweb)" (chalasr) + * bug #46443 [DoctrineBridge] Don't reinit managers when they are proxied as ghost objects (nicolas-grekas) + * bug #46427 [FrameworkBundle] fix wiring of annotations.cached_reader (nicolas-grekas) + * bug #46425 [DependencyInjection] Ignore unused bindings defined by attribute (nicolas-grekas) + * bug #46434 [FrameworkBundle] Fix BC break in abstract config commands (yceruto) + * bug #46424 [Form] do not accept array input when a form is not multiple (xabbuh) + * bug #46367 [Mime] Throw exception when body in Email attach method is not ok (alamirault) + * bug #46421 [VarDumper][VarExporter] Deal with DatePeriod->include_end_date on PHP 8.2 (nicolas-grekas) + * bug #46401 [Cache] Throw when "redis_sentinel" is used with a non-Predis "class" option (buffcode) + * bug #46414 Bootstrap 4 fieldset for row errors (konradkozaczenko) + * bug #46412 [FrameworkBundle] Fix dumping extension config without bundle (yceruto) + * bug #46382 [HttpClient] Honor "max_duration" when replacing requests with async decorators (nicolas-grekas) + * bug #46407 [Filesystem] Safeguard (sym)link calls (derrabus) + * bug #46098 [Form] Fix same choice loader with different choice values (HeahDude) + * bug #46380 [HttpClient] Add missing HttpOptions::setMaxDuration() (nicolas-grekas) + * bug #46377 [HttpKernel] Fix missing null type in `ErrorListener::__construct()` (chalasr) + * bug #46249 [HttpFoundation] [Session] Regenerate invalid session id (peter17) + * bug #46328 [Config] Allow scalar configuration in PHP Configuration (jderusse, HypeMC) + * bug #46366 [Mime] Add null check for EmailHeaderSame (magikid) + * bug #46364 [Config] Fix looking for single files in phars with GlobResource (nicolas-grekas) + * bug #46365 [HttpKernel] Revert "bug #46327 Allow ErrorHandler ^5.0 to be used" (nicolas-grekas) + * bug #46114 Fixes "Incorrectly nested style tag found" error when using multi-line header content (Perturbatio) + * bug #46325 [Ldap] Fix LDAP connection options (buffcode) + * bug #46341 Fix aliases handling in command name completion (Seldaek) + * bug #46317 [Security/Http] Ignore invalid URLs found in failure/success paths (nicolas-grekas) + * bug #46309 [Security] Fix division by zero (tvlooy) + * bug #46327 [HttpKernel] Allow ErrorHandler ^5.0 to be used in HttpKernel 4.4 (mpdude) + * bug #46297 [Serializer] Fix JsonSerializableNormalizer ignores circular reference handler in $context (BreyndotEchse) + * bug #46291 [Console] Suppress unhandled error in some specific use-cases. (rw4lll) + * bug #46302 [ErrorHandler] Fix list of tentative return types (nicolas-grekas) + * bug #45981 [Serializer][PropertyInfo] Fix support for "false" built-in type on PHP 8.2 (alexandre-daubois) + * bug #46277 [HttpKernel] Fix SessionListener without session in request (edditor) + * bug #46282 [DoctrineBridge] Treat firstResult === 0 like null (derrabus) + * bug #46239 [Translation] Refresh local translations on PushCommand if the provider has domains (Florian-B) + * bug #46276 [DependencyInjection] Fix lazyness of AutowiringFailedException (nicolas-grekas) + * bug #46278 [Workflow] Fix deprecated syntax for interpolated strings (nicolas-grekas) + * bug #46264 [Console] Better required argument check in InputArgument (jnoordsij) + * bug #46262 [EventDispatcher] Fix removing listeners when using first-class callable syntax (javer) + * bug #46216 [Form] fix populating single widget time view data with different timezones (xabbuh) + * bug #46221 [DomCrawler][VarDumper] Fix html-encoding emojis (nicolas-grekas) + * bug #46167 [VarExporter] Fix exporting DateTime objects on PHP 8.2 (nicolas-grekas) + * 6.0.8 (2022-04-27) * bug #46154 [Mailer] Restore X-Transport after failure (zenas1210) From b4728971a594bc7ad06d752af81b6e582b8af95b Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:14:30 +0200 Subject: [PATCH 09/59] Update VERSION for 6.0.9 --- 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 7cb4f5a36161e..68988b82b628f 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -78,12 +78,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '6.0.9-DEV'; + public const VERSION = '6.0.9'; public const VERSION_ID = 60009; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 0; public const RELEASE_VERSION = 9; - public const EXTRA_VERSION = 'DEV'; + public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '01/2023'; public const END_OF_LIFE = '01/2023'; From 5d871d62d86ab22923c3f148e6a2d4174ea6a991 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:20:29 +0200 Subject: [PATCH 10/59] Bump Symfony version to 6.0.10 --- 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 68988b82b628f..a8cf9f212e5cd 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -78,12 +78,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '6.0.9'; - public const VERSION_ID = 60009; + public const VERSION = '6.0.10-DEV'; + public const VERSION_ID = 60010; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 0; - public const RELEASE_VERSION = 9; - public const EXTRA_VERSION = ''; + public const RELEASE_VERSION = 10; + public const EXTRA_VERSION = 'DEV'; public const END_OF_MAINTENANCE = '01/2023'; public const END_OF_LIFE = '01/2023'; From d0e5b4f19ef24640411aafc61459a612b7dbb023 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Fri, 27 May 2022 09:52:43 +0200 Subject: [PATCH 11/59] Bump Symfony version to 6.1.1 --- 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 37a758c7cfaf1..0be22efad064a 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -78,12 +78,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '6.1.0'; - public const VERSION_ID = 60100; + public const VERSION = '6.1.1-DEV'; + public const VERSION_ID = 60101; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 1; - public const RELEASE_VERSION = 0; - public const EXTRA_VERSION = ''; + public const RELEASE_VERSION = 1; + public const EXTRA_VERSION = 'DEV'; public const END_OF_MAINTENANCE = '01/2023'; public const END_OF_LIFE = '01/2023'; From 297c3d7891594b921c3e3d74bf58fee8bbb00b71 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 27 May 2022 11:16:18 +0200 Subject: [PATCH 12/59] CS fix --- src/Symfony/Component/VarExporter/Internal/Exporter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/VarExporter/Internal/Exporter.php b/src/Symfony/Component/VarExporter/Internal/Exporter.php index 8e03755d87078..a8b271bda4295 100644 --- a/src/Symfony/Component/VarExporter/Internal/Exporter.php +++ b/src/Symfony/Component/VarExporter/Internal/Exporter.php @@ -110,7 +110,7 @@ public static function prepare($values, $objectsPool, &$refsPool, &$objectsCount $arrayValue = (array) $value; } elseif ($value instanceof \Serializable || $value instanceof \__PHP_Incomplete_Class - || PHP_VERSION_ID < 80200 && $value instanceof \DatePeriod + || \PHP_VERSION_ID < 80200 && $value instanceof \DatePeriod ) { ++$objectsCount; $objectsPool[$value] = [$id = \count($objectsPool), serialize($value), [], 0]; From 2b28702a1892e69061d792f9ea2c191b242e416b Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 27 May 2022 13:23:22 +0200 Subject: [PATCH 13/59] ensure that the $response property is initialized before being read --- src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php b/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php index b06f3244e73b8..d60b02a287558 100644 --- a/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php +++ b/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php @@ -25,7 +25,7 @@ class FirePHPHandler extends BaseFirePHPHandler { private array $headers = []; - private Response $response; + private ?Response $response = null; /** * Adds the headers to the response once it's created. @@ -61,7 +61,7 @@ protected function sendHeader($header, $content): void return; } - if ($this->response) { + if (null !== $this->response) { $this->response->headers->set($header, $content); } else { $this->headers[$header] = $content; From 5c29d512519a06c5c2fb787abba68e520ba72138 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 27 May 2022 13:44:32 +0200 Subject: [PATCH 14/59] Fix typo --- src/Symfony/Component/VarExporter/Instantiator.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/VarExporter/Instantiator.php b/src/Symfony/Component/VarExporter/Instantiator.php index 06abbc75a6954..46457bdeb94af 100644 --- a/src/Symfony/Component/VarExporter/Instantiator.php +++ b/src/Symfony/Component/VarExporter/Instantiator.php @@ -39,10 +39,10 @@ final class Instantiator * Bar::class => ['privateBarProperty' => $propertyValue], * ]); * - * Instances of ArrayObject, ArrayIterator and SplObjectHash can be created + * Instances of ArrayObject, ArrayIterator and SplObjectStorage can be created * by using the special "\0" property name to define their internal value: * - * // creates an SplObjectHash where $info1 is attached to $obj1, etc. + * // creates an SplObjectStorage where $info1 is attached to $obj1, etc. * Instantiator::instantiate(SplObjectStorage::class, ["\0" => [$obj1, $info1, $obj2, $info2...]]); * * // creates an ArrayObject populated with $inputArray From f3c3b15e35b61cc74edb5a792762690ca8a9a2c6 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Fri, 27 May 2022 14:12:01 +0200 Subject: [PATCH 15/59] [MonologBridge] Add Test for FirePHPHandler --- .../Tests/Handler/FirePHPHandlerTest.php | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php diff --git a/src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php b/src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php new file mode 100644 index 0000000000000..70d1915b64f93 --- /dev/null +++ b/src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php @@ -0,0 +1,132 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\Monolog\Tests\Handler; + +use PHPUnit\Framework\TestCase; +use Symfony\Bridge\Monolog\Handler\FirePHPHandler; +use Symfony\Bridge\Monolog\Logger; +use Symfony\Component\EventDispatcher\EventDispatcher; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\Event\ResponseEvent; +use Symfony\Component\HttpKernel\HttpKernelInterface; +use Symfony\Component\HttpKernel\KernelEvents; + +class FirePHPHandlerTest extends TestCase +{ + public function testLogHandling() + { + $handler = $this->createHandler(); + $logger = new Logger('my_logger', [$handler]); + + $logger->warning('This does not look right.'); + + $request = new Request(); + $request->headers->set('User-Agent', 'Mozilla/5.0 (FirePHP/1.0)'); + + $response = $this->dispatchResponseEvent($handler, $request); + + $logger->error('Something went wrong.'); + + self::assertSame( + [ + 'x-wf-1-1-1-1' => ['85|[{"Type":"WARN","File":"","Line":"","Label":"my_logger"},"This does not look right."]|'], + 'x-wf-1-1-1-2' => ['82|[{"Type":"ERROR","File":"","Line":"","Label":"my_logger"},"Something went wrong."]|'], + ], + array_filter( + $response->headers->all(), + static fn (string $key): bool => str_starts_with($key, 'x-wf-1-1-1'), + \ARRAY_FILTER_USE_KEY + ) + ); + } + + public function testEmptyLog() + { + $handler = $this->createHandler(); + + $dispatcher = new EventDispatcher(); + $dispatcher->addListener(KernelEvents::RESPONSE, $handler->onKernelResponse(...)); + + $request = new Request(); + $request->headers->set('User-Agent', 'Mozilla/5.0 (FirePHP/1.0)'); + + $response = $this->dispatchResponseEvent($handler, $request); + + self::assertSame( + [], + array_filter( + $response->headers->all(), + static fn (string $key): bool => str_starts_with($key, 'x-wf-1-1-1'), + \ARRAY_FILTER_USE_KEY + ) + ); + } + + public function testNoFirePhpClient() + { + $handler = $this->createHandler(); + $logger = new Logger('my_logger', [$handler]); + + $logger->warning('This does not look right.'); + + $request = new Request(); + $request->headers->set('User-Agent', 'Mozilla/5.0'); + + $response = $this->dispatchResponseEvent($handler, $request); + + $logger->error('Something went wrong.'); + + self::assertSame( + [], + array_filter( + $response->headers->all(), + static fn (string $key): bool => str_starts_with($key, 'x-wf-1-1-1'), + \ARRAY_FILTER_USE_KEY + ) + ); + } + + private function createHandler(): FirePHPHandler + { + // Monolog 1 + if (!method_exists(FirePHPHandler::class, 'isWebRequest')) { + return new FirePHPHandler(); + } + + $handler = $this->getMockBuilder(FirePHPHandler::class) + ->onlyMethods(['isWebRequest']) + ->getMock(); + // Disable web request detection + $handler->method('isWebRequest')->willReturn(true); + + return $handler; + } + + private function dispatchResponseEvent(FirePHPHandler $handler, Request $request): Response + { + $dispatcher = new EventDispatcher(); + $dispatcher->addListener(KernelEvents::RESPONSE, $handler->onKernelResponse(...)); + + return $dispatcher + ->dispatch( + new ResponseEvent( + $this->createStub(HttpKernelInterface::class), + $request, + HttpKernelInterface::MAIN_REQUEST, + new Response() + ), + KernelEvents::RESPONSE + ) + ->getResponse(); + } +} From d0843be177de584d4e00e7bf9a428d03b8146ba0 Mon Sep 17 00:00:00 2001 From: Kevin Bond Date: Fri, 27 May 2022 09:53:40 -0400 Subject: [PATCH 16/59] [DependencyInjection] remove static cache from `ServiceSubscriberTrait` --- src/Symfony/Contracts/Service/ServiceSubscriberTrait.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php b/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php index 020887b3f5736..48c610ab17144 100644 --- a/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php +++ b/src/Symfony/Contracts/Service/ServiceSubscriberTrait.php @@ -29,12 +29,6 @@ trait ServiceSubscriberTrait */ public static function getSubscribedServices(): array { - static $services; - - if (null !== $services) { - return $services; - } - $services = method_exists(get_parent_class(self::class) ?: '', __FUNCTION__) ? parent::getSubscribedServices() : []; foreach ((new \ReflectionClass(self::class))->getMethods() as $method) { From 9876f2f6b13faf5a58203b23c9c4742d6d32b276 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 27 May 2022 18:55:36 +0200 Subject: [PATCH 17/59] [FrameworkBundle][TwigBundle] Fix registering html-sanitizer services --- .../FrameworkBundle/Resources/config/html_sanitizer.php | 2 +- .../DependencyInjection/Compiler/ExtensionPass.php | 4 ++++ .../Bundle/TwigBundle/DependencyInjection/TwigExtension.php | 5 ----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/html_sanitizer.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/html_sanitizer.php index 19e1a2175cdb1..9afb6326179fd 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/html_sanitizer.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/html_sanitizer.php @@ -22,7 +22,7 @@ ->set('html_sanitizer.sanitizer.default', HtmlSanitizer::class) ->args([service('html_sanitizer.config.default')]) - ->tag('html_sanitizer', ['name' => 'default']) + ->tag('html_sanitizer', ['sanitizer' => 'default']) ->alias('html_sanitizer', 'html_sanitizer.sanitizer.default') ->alias(HtmlSanitizerInterface::class, 'html_sanitizer') diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php index 12724e0f1cc65..6654fe08e11a9 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php @@ -69,6 +69,10 @@ public function process(ContainerBuilder $container) $container->getDefinition('twig.extension.routing')->addTag('twig.extension'); } + if ($container->has('html_sanitizer')) { + $container->getDefinition('twig.extension.htmlsanitizer')->addTag('twig.extension'); + } + if ($container->has('fragment.handler')) { $container->getDefinition('twig.extension.httpkernel')->addTag('twig.extension'); $container->getDefinition('twig.runtime.httpkernel')->addTag('twig.runtime'); diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index adfab4f96610c..f598524da4d64 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -19,7 +19,6 @@ use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\Form\AbstractRendererEngine; use Symfony\Component\Form\Form; -use Symfony\Component\HtmlSanitizer\HtmlSanitizerInterface; use Symfony\Component\HttpKernel\DependencyInjection\Extension; use Symfony\Component\Mailer\Mailer; use Symfony\Component\Translation\Translator; @@ -55,10 +54,6 @@ public function load(array $configs, ContainerBuilder $container) $loader->load('console.php'); } - if (!$container::willBeAvailable('symfony/html-sanitizer', HtmlSanitizerInterface::class, ['symfony/twig-bundle'])) { - $container->removeDefinition('twig.extension.htmlsanitizer'); - } - if ($container::willBeAvailable('symfony/mailer', Mailer::class, ['symfony/twig-bundle'])) { $loader->load('mailer.php'); } From f30db826d6de8fd24961c1a040c119284323554a Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Sun, 29 May 2022 20:27:30 +0200 Subject: [PATCH 18/59] update docblock to not expose the internal class --- .github/expected-missing-return-types.diff | 2 +- src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/expected-missing-return-types.diff b/.github/expected-missing-return-types.diff index 9c69e3869d510..219ebf896d44d 100644 --- a/.github/expected-missing-return-types.diff +++ b/.github/expected-missing-return-types.diff @@ -14,7 +14,7 @@ index d68ae4c8b3..8e980a9e70 100644 * @return TestContainer */ - protected static function getContainer(): ContainerInterface -+ protected static function getContainer(): TestContainer ++ protected static function getContainer(): Container { if (!static::$booted) { diff --git a/src/Symfony/Component/BrowserKit/AbstractBrowser.php b/src/Symfony/Component/BrowserKit/AbstractBrowser.php diff --git a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php index 7e9b90ef33d30..165797504bcb8 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php @@ -12,6 +12,7 @@ namespace Symfony\Bundle\FrameworkBundle\Test; use PHPUnit\Framework\TestCase; +use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; use Symfony\Component\HttpKernel\KernelInterface; @@ -83,7 +84,7 @@ protected static function bootKernel(array $options = []): KernelInterface * * Using this method is the best way to get a container from your test code. * - * @return TestContainer + * @return Container */ protected static function getContainer(): ContainerInterface { From a5c2e1d2fb222f748147f24b8417f00b52743b66 Mon Sep 17 00:00:00 2001 From: Tugdual Saunier Date: Mon, 30 May 2022 10:29:00 -0400 Subject: [PATCH 19/59] [WebProfilerBundle] Fix AJAX requests info are truncated in the WDT --- .../WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig index 126bdd7458243..5d0e3c928a10e 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig @@ -324,7 +324,7 @@ div.sf-toolbar .sf-toolbar-block a:hover { .sf-toolbar-block.hover .sf-toolbar-info { display: block; padding: 10px; - max-width: 480px; + max-width: 525px; max-height: 480px; word-wrap: break-word; overflow: hidden; From c4d61a6401f3a0be1fbf0e24e9d75ef2f1509bac Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 30 May 2022 16:40:38 +0200 Subject: [PATCH 20/59] [FrameworkBundle] Add alximy as backer of version 6.1 --- src/Symfony/Bundle/FrameworkBundle/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Symfony/Bundle/FrameworkBundle/README.md b/src/Symfony/Bundle/FrameworkBundle/README.md index 76c7700fa03af..db59697577dde 100644 --- a/src/Symfony/Bundle/FrameworkBundle/README.md +++ b/src/Symfony/Bundle/FrameworkBundle/README.md @@ -4,6 +4,19 @@ FrameworkBundle FrameworkBundle provides a tight integration between Symfony components and the Symfony full-stack framework. +Sponsor +------- + +The FrameworkBundle for Symfony 6.1 is [backed][1] by [alximy][2]. + +A team of passionate humans from very different backgrounds, sharing their love of +PHP, Symfony and its ecosystem. Their CTO, Expert developers, tech leads, can help +you learn or develop the tools you need, and perform audits or tailored workshops. +They value contributing to the Open Source community and are willing to mentor new +contributors in their team or yours. + +Help Symfony by [sponsoring][3] its development! + Resources --------- @@ -11,3 +24,7 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[2]: https://alximy.io/ +[3]: https://symfony.com/sponsor From 74f3c37182cef294ed57e32c04155cd3463d7036 Mon Sep 17 00:00:00 2001 From: Daniel Burger <48986191+danielburger1337@users.noreply.github.com> Date: Mon, 30 May 2022 18:45:24 +0200 Subject: [PATCH 21/59] [Serializer] Added missing __call to TraceableNormalizer and TraceableSerializer --- .../Component/Serializer/Debug/TraceableNormalizer.php | 8 ++++++++ .../Component/Serializer/Debug/TraceableSerializer.php | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php b/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php index 58a055ecfa90d..33e1b255a38c3 100644 --- a/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php +++ b/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php @@ -150,4 +150,12 @@ public function hasCacheableSupportsMethod(): bool { return $this->normalizer instanceof CacheableSupportsMethodInterface && $this->normalizer->hasCacheableSupportsMethod(); } + + /** + * Proxies all method calls to the original normalizer. + */ + public function __call(string $method, array $arguments): mixed + { + return $this->normalizer->{$method}(...$arguments); + } } diff --git a/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php b/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php index 557bf91286c28..bc16bd7f8d240 100644 --- a/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php +++ b/src/Symfony/Component/Serializer/Debug/TraceableSerializer.php @@ -165,4 +165,12 @@ public function supportsDecoding(string $format, array $context = []): bool { return $this->serializer->supportsDecoding($format, $context); } + + /** + * Proxies all method calls to the original serializer. + */ + public function __call(string $method, array $arguments): mixed + { + return $this->serializer->{$method}(...$arguments); + } } From 16dbefa4f25a483a6074cbd697bce2b9ae008429 Mon Sep 17 00:00:00 2001 From: Tomas Date: Tue, 31 May 2022 08:11:17 +0300 Subject: [PATCH 22/59] [PropertyInfo] Fix extracting int range type --- .../Tests/Extractor/PhpStanExtractorTest.php | 17 +++++++++++ .../Tests/Fixtures/IntRangeDummy.php | 30 +++++++++++++++++++ .../PropertyInfo/Util/PhpStanTypeHelper.php | 4 +++ 3 files changed, 51 insertions(+) create mode 100644 src/Symfony/Component/PropertyInfo/Tests/Fixtures/IntRangeDummy.php diff --git a/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php b/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php index d3c2c950963b1..467c076e2575e 100644 --- a/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php +++ b/src/Symfony/Component/PropertyInfo/Tests/Extractor/PhpStanExtractorTest.php @@ -401,6 +401,23 @@ public function testDummyNamespaceWithProperty() $this->assertEquals('A\Property', $phpStanTypes[0]->getClassName()); $this->assertEquals($phpDocTypes[0]->getClassName(), $phpStanTypes[0]->getClassName()); } + + /** + * @dataProvider intRangeTypeProvider + */ + public function testExtractorIntRangeType(string $property, ?array $types) + { + $this->assertEquals($types, $this->extractor->getTypes('Symfony\Component\PropertyInfo\Tests\Fixtures\IntRangeDummy', $property)); + } + + public function intRangeTypeProvider(): array + { + return [ + ['a', [new Type(Type::BUILTIN_TYPE_INT)]], + ['b', [new Type(Type::BUILTIN_TYPE_INT, true)]], + ['c', [new Type(Type::BUILTIN_TYPE_INT)]], + ]; + } } class PhpStanOmittedParamTagTypeDocBlock diff --git a/src/Symfony/Component/PropertyInfo/Tests/Fixtures/IntRangeDummy.php b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/IntRangeDummy.php new file mode 100644 index 0000000000000..12b3784726e82 --- /dev/null +++ b/src/Symfony/Component/PropertyInfo/Tests/Fixtures/IntRangeDummy.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\PropertyInfo\Tests\Fixtures; + +class IntRangeDummy +{ + /** + * @var int<0, 100> + */ + public $a; + + /** + * @var int|null + */ + public $b; + + /** + * @var int<50, max> + */ + public $c; +} diff --git a/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php b/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php index f3812ea0f35f4..256122af759b7 100644 --- a/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php +++ b/src/Symfony/Component/PropertyInfo/Util/PhpStanTypeHelper.php @@ -117,6 +117,10 @@ private function extractTypes(TypeNode $node, NameScope $nameScope): array if ($node instanceof GenericTypeNode) { [$mainType] = $this->extractTypes($node->type, $nameScope); + if (Type::BUILTIN_TYPE_INT === $mainType->getBuiltinType()) { + return [$mainType]; + } + $collectionKeyTypes = $mainType->getCollectionKeyTypes(); $collectionKeyValues = []; if (1 === \count($node->genericTypes)) { From 7e24e5dbf9b5eb5af8ca466be8c482a61d790c0b Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 31 May 2022 16:27:13 +0200 Subject: [PATCH 23/59] Revert "feature #45092 [HttpFoundation] Send `Content-Length` when calling `Response::send()` and the content is a non-empty string (nicolas-grekas)" This reverts commit aff969d9353616bdbefbe64f5964f1f38d9e9260, reversing changes made to 8b680f053208219e479ed7a8e82314b91f24f270. --- src/Symfony/Component/HttpFoundation/CHANGELOG.md | 1 - src/Symfony/Component/HttpFoundation/Response.php | 4 ---- .../HttpFoundation/Tests/ResponseTest.php | 14 -------------- 3 files changed, 19 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/CHANGELOG.md b/src/Symfony/Component/HttpFoundation/CHANGELOG.md index 29bc7507e58b6..fdbd39cead318 100644 --- a/src/Symfony/Component/HttpFoundation/CHANGELOG.md +++ b/src/Symfony/Component/HttpFoundation/CHANGELOG.md @@ -6,7 +6,6 @@ CHANGELOG * Add stale while revalidate and stale if error cache header * Allow dynamic session "ttl" when using a remote storage - * Send `Content-Length` when calling `Response::send()` and the content is a non-empty string 6.0 --- diff --git a/src/Symfony/Component/HttpFoundation/Response.php b/src/Symfony/Component/HttpFoundation/Response.php index da5cec5405226..e452e1a017f37 100644 --- a/src/Symfony/Component/HttpFoundation/Response.php +++ b/src/Symfony/Component/HttpFoundation/Response.php @@ -371,10 +371,6 @@ public function sendContent(): static */ public function send(): static { - if (\is_string($this->content) && '' !== $this->content && !$this->headers->has('Transfer-Encoding')) { - $this->headers->set('Content-Length', \strlen($this->content)); - } - $this->sendHeaders(); $this->sendContent(); diff --git a/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php b/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php index 9d4a32a54269d..d3905c8f9d3aa 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php @@ -57,20 +57,6 @@ public function testSend() $this->assertObjectHasAttribute('statusCode', $responseSent); $this->assertObjectHasAttribute('statusText', $responseSent); $this->assertObjectHasAttribute('charset', $responseSent); - $this->assertFalse($responseSent->headers->has('Content-Length')); - - ob_start(); - - $response = new Response('foo'); - $responseSent = $response->send(); - $this->assertSame('3', $responseSent->headers->get('Content-Length')); - - $response = new Response('bar'); - $response->headers->set('Transfer-Encoding', 'chunked'); - $responseSent = $response->send(); - $this->assertFalse($responseSent->headers->has('Content-Length')); - - $this->assertSame('foobar', ob_get_clean()); } public function testGetCharset() From 48c47df601798cdc2192a23f281f8251a03c9bd0 Mon Sep 17 00:00:00 2001 From: zenas1210 Date: Tue, 31 May 2022 17:58:40 +0300 Subject: [PATCH 24/59] [Serializer] Get attributeContext after converting name --- .../Normalizer/AbstractObjectNormalizer.php | 6 ++--- .../Features/ContextMetadataTestTrait.php | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php index 951eb9d4a59b8..7a5c1bf9d0522 100644 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php @@ -359,12 +359,12 @@ public function denormalize($data, string $type, string $format = null, array $c $resolvedClass = $this->objectClassResolver ? ($this->objectClassResolver)($object) : \get_class($object); foreach ($normalizedData as $attribute => $value) { - $attributeContext = $this->getAttributeDenormalizationContext($resolvedClass, $attribute, $context); - if ($this->nameConverter) { - $attribute = $this->nameConverter->denormalize($attribute, $resolvedClass, $format, $attributeContext); + $attribute = $this->nameConverter->denormalize($attribute, $resolvedClass, $format, $context); } + $attributeContext = $this->getAttributeDenormalizationContext($resolvedClass, $attribute, $context); + if ((false !== $allowedAttributes && !\in_array($attribute, $allowedAttributes)) || !$this->isAllowedAttribute($resolvedClass, $attribute, $format, $context)) { if (!($context[self::ALLOW_EXTRA_ATTRIBUTES] ?? $this->defaultContext[self::ALLOW_EXTRA_ATTRIBUTES])) { $extraAttributes[] = $attribute; diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ContextMetadataTestTrait.php b/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ContextMetadataTestTrait.php index 374cacaf79d02..4dbba913b7272 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ContextMetadataTestTrait.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/Features/ContextMetadataTestTrait.php @@ -17,6 +17,7 @@ use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory; use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader; +use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter; use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Serializer; @@ -70,6 +71,17 @@ public function testContextMetadataContextDenormalize() ]); self::assertEquals('2011-07-28', $dummy->date->format('Y-m-d'), 'a specific denormalization context is used for this group'); } + + public function testContextDenormalizeWithNameConverter() + { + $classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader())); + $normalizer = new ObjectNormalizer($classMetadataFactory, new CamelCaseToSnakeCaseNameConverter(), null, new PhpDocExtractor()); + new Serializer([new DateTimeNormalizer(), $normalizer]); + + /** @var ContextMetadataNamingDummy $dummy */ + $dummy = $normalizer->denormalize(['created_at' => '28/07/2011'], ContextMetadataNamingDummy::class); + self::assertEquals('2011-07-28', $dummy->createdAt->format('Y-m-d')); + } } class ContextMetadataDummy @@ -90,3 +102,13 @@ class ContextMetadataDummy */ public $date; } + +class ContextMetadataNamingDummy +{ + /** + * @var \DateTime + * + * @Context({ DateTimeNormalizer::FORMAT_KEY = "d/m/Y" }) + */ + public $createdAt; +} From 424b9ff284a9a9bc48a93d45ac8a2538d2ad9130 Mon Sep 17 00:00:00 2001 From: Daniel Burger <48986191+danielburger1337@users.noreply.github.com> Date: Tue, 31 May 2022 17:48:08 +0200 Subject: [PATCH 25/59] Added missing __call to TraceableEncoder --- .../Component/Serializer/Debug/TraceableEncoder.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php b/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php index c2927adf914e8..9f58f2b1213c1 100644 --- a/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php +++ b/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php @@ -121,4 +121,12 @@ public function needsNormalization(): bool { return !$this->encoder instanceof NormalizationAwareEncoder; } + + /** + * Proxies all method calls to the original encoder. + */ + public function __call(string $method, array $arguments): mixed + { + return $this->encoder->{$method}(...$arguments); + } } From a0d9fceae5887e39ef27cfb15446ceb66f549eda Mon Sep 17 00:00:00 2001 From: Mathias Arlaud Date: Tue, 31 May 2022 18:08:20 +0200 Subject: [PATCH 26/59] [Serializer] Forget partially collected traces --- .../DataCollector/SerializerDataCollector.php | 4 ++++ .../SerializerDataCollectorTest.php | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php b/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php index cfea563d0119c..2cc4ba7a922e8 100644 --- a/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php +++ b/src/Symfony/Component/Serializer/DataCollector/SerializerDataCollector.php @@ -179,6 +179,10 @@ public function lateCollect(): void ]; foreach ($this->collected as $collected) { + if (!isset($collected['data'])) { + continue; + } + $data = [ 'data' => $this->cloneVar($collected['data']), 'dataType' => get_debug_type($collected['data']), diff --git a/src/Symfony/Component/Serializer/Tests/DataCollector/SerializerDataCollectorTest.php b/src/Symfony/Component/Serializer/Tests/DataCollector/SerializerDataCollectorTest.php index 7b22b6064e0d2..b929e262753cc 100644 --- a/src/Symfony/Component/Serializer/Tests/DataCollector/SerializerDataCollectorTest.php +++ b/src/Symfony/Component/Serializer/Tests/DataCollector/SerializerDataCollectorTest.php @@ -276,6 +276,27 @@ public function testReset() $this->assertSame([], $dataCollector->getData()); } + public function testDoNotCollectPartialTraces() + { + $dataCollector = new SerializerDataCollector(); + + $dataCollector->collectNormalization('traceIdOne', DateTimeNormalizer::class, 1.0); + $dataCollector->collectDenormalization('traceIdTwo', DateTimeNormalizer::class, 1.0); + $dataCollector->collectEncoding('traceIdThree', CsvEncoder::class, 10.0); + $dataCollector->collectDecoding('traceIdFour', JsonEncoder::class, 1.0); + + $dataCollector->lateCollect(); + + $data = $dataCollector->getData(); + + $this->assertSame([], $data['serialize']); + $this->assertSame([], $data['deserialize']); + $this->assertSame([], $data['normalize']); + $this->assertSame([], $data['denormalize']); + $this->assertSame([], $data['encode']); + $this->assertSame([], $data['decode']); + } + /** * Cast cloned vars to be able to test nested values. */ From fe823cb58ede731601d2464fc6b982c54bf583ba Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 31 May 2022 18:23:46 +0200 Subject: [PATCH 27/59] [Serializer] code cleanup --- .../Serializer/Debug/TraceableEncoder.php | 12 ++--------- .../Serializer/Debug/TraceableNormalizer.php | 12 ++--------- .../Tests/Debug/TraceableSerializerTest.php | 20 ++++--------------- 3 files changed, 8 insertions(+), 36 deletions(-) diff --git a/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php b/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php index c2927adf914e8..70d4452b8c2ee 100644 --- a/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php +++ b/src/Symfony/Component/Serializer/Debug/TraceableEncoder.php @@ -55,17 +55,13 @@ public function encode(mixed $data, string $format, array $context = []): string /** * {@inheritDoc} - * - * @param array $context */ - public function supportsEncoding(string $format /*, array $context = [] */): bool + public function supportsEncoding(string $format, array $context = []): bool { if (!$this->encoder instanceof EncoderInterface) { return false; } - $context = \func_num_args() > 1 ? func_get_arg(1) : []; - return $this->encoder->supportsEncoding($format, $context); } @@ -91,17 +87,13 @@ public function decode(string $data, string $format, array $context = []): mixed /** * {@inheritDoc} - * - * @param array $context */ - public function supportsDecoding(string $format /*, array $context = [] */): bool + public function supportsDecoding(string $format, array $context = []): bool { if (!$this->encoder instanceof DecoderInterface) { return false; } - $context = \func_num_args() > 1 ? func_get_arg(1) : []; - return $this->encoder->supportsDecoding($format, $context); } diff --git a/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php b/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php index 33e1b255a38c3..8e430e55d4351 100644 --- a/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php +++ b/src/Symfony/Component/Serializer/Debug/TraceableNormalizer.php @@ -57,17 +57,13 @@ public function normalize(mixed $object, string $format = null, array $context = /** * {@inheritDoc} - * - * @param array $context */ - public function supportsNormalization(mixed $data, string $format = null /*, array $context = [] */): bool + public function supportsNormalization(mixed $data, string $format = null, array $context = []): bool { if (!$this->normalizer instanceof NormalizerInterface) { return false; } - $context = \func_num_args() > 2 ? func_get_arg(2) : []; - return $this->normalizer->supportsNormalization($data, $format, $context); } @@ -93,17 +89,13 @@ public function denormalize(mixed $data, string $type, string $format = null, ar /** * {@inheritDoc} - * - * @param array $context */ - public function supportsDenormalization(mixed $data, string $type, string $format = null /*, array $context = [] */): bool + public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool { if (!$this->normalizer instanceof DenormalizerInterface) { return false; } - $context = \func_num_args() > 3 ? func_get_arg(3) : []; - return $this->normalizer->supportsDenormalization($data, $type, $format, $context); } diff --git a/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php b/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php index ae8a01623cdbf..00a1ef58a693f 100644 --- a/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Debug/TraceableSerializerTest.php @@ -145,10 +145,7 @@ public function normalize(mixed $object, string $format = null, array $context = return 'normalized'; } - /** - * @param array $context - */ - public function supportsNormalization(mixed $data, string $format = null /*, array $context = [] */): bool + public function supportsNormalization(mixed $data, string $format = null, array $context = []): bool { return true; } @@ -158,10 +155,7 @@ public function denormalize(mixed $data, string $type, string $format = null, ar return 'denormalized'; } - /** - * @param array $context - */ - public function supportsDenormalization(mixed $data, string $type, string $format = null /*, array $context = [] */): bool + public function supportsDenormalization(mixed $data, string $type, string $format = null, array $context = []): bool { return true; } @@ -171,10 +165,7 @@ public function encode(mixed $data, string $format, array $context = []): string return 'encoded'; } - /** - * @param array $context - */ - public function supportsEncoding(string $format /*, array $context = [] */): bool + public function supportsEncoding(string $format, array $context = []): bool { return true; } @@ -184,10 +175,7 @@ public function decode(string $data, string $format, array $context = []): mixed return 'decoded'; } - /** - * @param array $context - */ - public function supportsDecoding(string $format /*, array $context = [] */): bool + public function supportsDecoding(string $format, array $context = []): bool { return true; } From 7bffa1e0563b269125c5c8fe953bbf1b22beacd9 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 31 May 2022 18:48:23 +0200 Subject: [PATCH 28/59] [Workflow] Add ZEturf as backer --- src/Symfony/Component/Workflow/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/Symfony/Component/Workflow/README.md b/src/Symfony/Component/Workflow/README.md index 66fb6013a59ed..6cc5440dc8a37 100644 --- a/src/Symfony/Component/Workflow/README.md +++ b/src/Symfony/Component/Workflow/README.md @@ -4,6 +4,19 @@ Workflow Component The Workflow component provides tools for managing a workflow or finite state machine. +Sponsor +------- + +The Workflow component for Symfony 5.4/6.0 is [backed][1] by [ZEturf][2]. + +The ZEturf group is an online gaming operator licensed in 6 markets in Europe and +Africa. It operates two brands, ZEturf on horse racing betting, and ZEbet on +sports betting. In parallel with the development of its betting activities, the +group is also investing in Entertainment / gaming with Free-to-Play and +Play-to-Earn projects. + +Help Symfony by [sponsoring][3] its development! + Resources --------- @@ -12,3 +25,7 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[2]: https://zeturf.com +[3]: https://symfony.com/sponsor From 115a078008372d3e02a60480a7446c0c35394598 Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Tue, 31 May 2022 23:03:42 +0200 Subject: [PATCH 29/59] [Security] Fix some phpdoc --- .../Passport/Credentials/PasswordCredentials.php | 2 +- .../Http/Authenticator/Passport/Passport.php | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Security/Http/Authenticator/Passport/Credentials/PasswordCredentials.php b/src/Symfony/Component/Security/Http/Authenticator/Passport/Credentials/PasswordCredentials.php index 1c27ac9e4592a..50d47fc732682 100644 --- a/src/Symfony/Component/Security/Http/Authenticator/Passport/Credentials/PasswordCredentials.php +++ b/src/Symfony/Component/Security/Http/Authenticator/Passport/Credentials/PasswordCredentials.php @@ -16,7 +16,7 @@ /** * Implements password credentials. * - * These plaintext passwords are checked by the UserPasswordEncoder during + * These plaintext passwords are checked by the UserPasswordHasher during * authentication. * * @author Wouter de Jong diff --git a/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php b/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php index 24ed0290e9c4e..23bb33c927252 100644 --- a/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php +++ b/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php @@ -17,7 +17,11 @@ use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\CredentialsInterface; /** - * The default implementation for passports. + * A Passport contains all security-related information that needs to be + * validated during authentication. + * + * A passport badge can be used to add any additional information to the + * passport. * * @author Wouter de Jong */ @@ -59,6 +63,12 @@ public function getUser(): UserInterface } /** + * Adds a new security badge. + * + * A passport can hold only one instance of the same security badge. + * This method replaces the current badge if it is already set on this + * passport. + * * @return $this */ public function addBadge(BadgeInterface $badge): PassportInterface From 5d76dbb3cde28d6f91d0a2fbae769b3620aea66f Mon Sep 17 00:00:00 2001 From: Oskar Stark Date: Wed, 1 Jun 2022 14:29:35 +0200 Subject: [PATCH 30/59] [Mailer] Sort transports alphabetically --- .../DependencyInjection/FrameworkExtension.php | 2 +- .../Mailer/Exception/UnsupportedSchemeException.php | 8 ++++---- .../Tests/Exception/UnsupportedSchemeExceptionTest.php | 4 ++-- src/Symfony/Component/Mailer/Transport.php | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index df425dc5e1dca..9c1410419d066 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -2437,11 +2437,11 @@ private function registerMailerConfiguration(array $config, ContainerBuilder $co MailgunTransportFactory::class => 'mailer.transport_factory.mailgun', MailjetTransportFactory::class => 'mailer.transport_factory.mailjet', MandrillTransportFactory::class => 'mailer.transport_factory.mailchimp', + OhMySmtpTransportFactory::class => 'mailer.transport_factory.ohmysmtp', PostmarkTransportFactory::class => 'mailer.transport_factory.postmark', SendgridTransportFactory::class => 'mailer.transport_factory.sendgrid', SendinblueTransportFactory::class => 'mailer.transport_factory.sendinblue', SesTransportFactory::class => 'mailer.transport_factory.amazon', - OhMySmtpTransportFactory::class => 'mailer.transport_factory.ohmysmtp', ]; foreach ($classToServices as $class => $service) { diff --git a/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php b/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php index 452b8ba3508a8..e47a129dc7e90 100644 --- a/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php +++ b/src/Symfony/Component/Mailer/Exception/UnsupportedSchemeException.php @@ -36,6 +36,10 @@ class UnsupportedSchemeException extends LogicException 'class' => Bridge\Mailchimp\Transport\MandrillTransportFactory::class, 'package' => 'symfony/mailchimp-mailer', ], + 'ohmysmtp' => [ + 'class' => Bridge\OhMySmtp\Transport\OhMySmtpTransportFactory::class, + 'package' => 'symfony/oh-my-smtp-mailer', + ], 'postmark' => [ 'class' => Bridge\Postmark\Transport\PostmarkTransportFactory::class, 'package' => 'symfony/postmark-mailer', @@ -52,10 +56,6 @@ class UnsupportedSchemeException extends LogicException 'class' => Bridge\Amazon\Transport\SesTransportFactory::class, 'package' => 'symfony/amazon-mailer', ], - 'ohmysmtp' => [ - 'class' => Bridge\OhMySmtp\Transport\OhMySmtpTransportFactory::class, - 'package' => 'symfony/oh-my-smtp-mailer', - ], ]; public function __construct(Dsn $dsn, string $name = null, array $supported = []) diff --git a/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php b/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php index 54685da7cb772..54ce6dbe5a38c 100644 --- a/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php +++ b/src/Symfony/Component/Mailer/Tests/Exception/UnsupportedSchemeExceptionTest.php @@ -38,10 +38,10 @@ public static function setUpBeforeClass(): void MailgunTransportFactory::class => false, MailjetTransportFactory::class => false, MandrillTransportFactory::class => false, + OhMySmtpTransportFactory::class => false, PostmarkTransportFactory::class => false, SendgridTransportFactory::class => false, SendinblueTransportFactory::class => false, - OhMySmtpTransportFactory::class => false, SesTransportFactory::class => false, ]); } @@ -65,10 +65,10 @@ public function messageWhereSchemeIsPartOfSchemeToPackageMapProvider(): \Generat yield ['mailgun', 'symfony/mailgun-mailer']; yield ['mailjet', 'symfony/mailjet-mailer']; yield ['mandrill', 'symfony/mailchimp-mailer']; + yield ['ohmysmtp', 'symfony/oh-my-smtp-mailer']; yield ['postmark', 'symfony/postmark-mailer']; yield ['sendgrid', 'symfony/sendgrid-mailer']; yield ['sendinblue', 'symfony/sendinblue-mailer']; - yield ['ohmysmtp', 'symfony/oh-my-smtp-mailer']; yield ['ses', 'symfony/amazon-mailer']; } diff --git a/src/Symfony/Component/Mailer/Transport.php b/src/Symfony/Component/Mailer/Transport.php index 3334b4068e553..920ffc416979d 100644 --- a/src/Symfony/Component/Mailer/Transport.php +++ b/src/Symfony/Component/Mailer/Transport.php @@ -49,10 +49,10 @@ class Transport MailgunTransportFactory::class, MailjetTransportFactory::class, MandrillTransportFactory::class, + OhMySmtpTransportFactory::class, PostmarkTransportFactory::class, SendgridTransportFactory::class, SendinblueTransportFactory::class, - OhMySmtpTransportFactory::class, SesTransportFactory::class, ]; From 98a4b8a5fd5d9cc71aa3586afd98fcefdd2042b0 Mon Sep 17 00:00:00 2001 From: Tomas Date: Wed, 1 Jun 2022 08:04:08 +0300 Subject: [PATCH 31/59] [HtmlSanitizer][FrameworkBundle] Fix calling `allowStaticElements` when setting `allow_all_static_elements: true` --- .../FrameworkBundle/DependencyInjection/Configuration.php | 2 +- .../DependencyInjection/FrameworkExtension.php | 4 ++-- .../FrameworkBundle/Resources/config/schema/symfony-1.0.xsd | 2 +- .../Tests/DependencyInjection/Fixtures/php/html_sanitizer.php | 2 +- .../Tests/DependencyInjection/Fixtures/xml/html_sanitizer.xml | 2 +- .../Tests/DependencyInjection/Fixtures/yml/html_sanitizer.yml | 2 +- .../Tests/DependencyInjection/FrameworkExtensionTest.php | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php index 947f182eef1f4..65a648f24c6fa 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php @@ -2149,7 +2149,7 @@ private function addHtmlSanitizerSection(ArrayNodeDefinition $rootNode, callable ->info('Allows "safe" elements and attributes.') ->defaultFalse() ->end() - ->booleanNode('allow_all_static_elements') + ->booleanNode('allow_static_elements') ->info('Allows all static elements and attributes from the W3C Sanitizer API standard.') ->defaultFalse() ->end() diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 3770d337850a4..168b2111a391f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -2682,8 +2682,8 @@ private function registerHtmlSanitizerConfiguration(array $config, ContainerBuil $def->addMethodCall('allowSafeElements', [], true); } - if ($sanitizerConfig['allow_all_static_elements']) { - $def->addMethodCall('allowAllStaticElements', [], true); + if ($sanitizerConfig['allow_static_elements']) { + $def->addMethodCall('allowStaticElements', [], true); } // Configures elements diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd index 2baa0a33a3ebc..e6eb3180a34ae 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd @@ -845,7 +845,7 @@ - + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/html_sanitizer.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/html_sanitizer.php index de6a0a1ae34bc..2c8e2eb165071 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/html_sanitizer.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/html_sanitizer.php @@ -6,7 +6,7 @@ 'sanitizers' => [ 'default' => [ 'allow_safe_elements' => true, - 'allow_all_static_elements' => true, + 'allow_static_elements' => true, 'allow_elements' => [ 'iframe' => 'src', 'custom-tag' => ['data-attr', 'data-attr-1'], diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/html_sanitizer.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/html_sanitizer.xml index f2b11618d18e2..a974ec6cab418 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/html_sanitizer.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/html_sanitizer.xml @@ -9,7 +9,7 @@ assertSame( [ ['allowSafeElements', [], true], - ['allowAllStaticElements', [], true], + ['allowStaticElements', [], true], ['allowElement', ['iframe', 'src'], true], ['allowElement', ['custom-tag', ['data-attr', 'data-attr-1']], true], ['allowElement', ['custom-tag-2', '*'], true], From 4a9d6a547539f5b27832603bf62288957fa70b9b Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Wed, 1 Jun 2022 15:42:50 +0200 Subject: [PATCH 32/59] [Cache] do not pass null to strlen() --- src/Symfony/Component/Cache/Traits/RedisTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Cache/Traits/RedisTrait.php b/src/Symfony/Component/Cache/Traits/RedisTrait.php index c27e0df689493..dabdde4e705ce 100644 --- a/src/Symfony/Component/Cache/Traits/RedisTrait.php +++ b/src/Symfony/Component/Cache/Traits/RedisTrait.php @@ -373,7 +373,7 @@ protected function doClear($namespace) { if ($this->redis instanceof \Predis\ClientInterface) { $prefix = $this->redis->getOptions()->prefix ? $this->redis->getOptions()->prefix->getPrefix() : ''; - $prefixLen = \strlen($prefix); + $prefixLen = \strlen($prefix ?? ''); } $cleared = true; From 633007649be336e941dea9adb936ddbce3b21488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Fr=C3=A9mont?= Date: Wed, 1 Jun 2022 18:17:21 +0200 Subject: [PATCH 33/59] Fix getting class constraints on debug command --- .../Validator/Command/DebugCommand.php | 30 ++++- .../Tests/Command/DebugCommandTest.php | 125 +++++++++++------- 2 files changed, 102 insertions(+), 53 deletions(-) diff --git a/src/Symfony/Component/Validator/Command/DebugCommand.php b/src/Symfony/Component/Validator/Command/DebugCommand.php index ad0ebba021396..be2c3fe96337e 100644 --- a/src/Symfony/Component/Validator/Command/DebugCommand.php +++ b/src/Symfony/Component/Validator/Command/DebugCommand.php @@ -90,7 +90,19 @@ private function dumpValidatorsForClass(InputInterface $input, OutputInterface $ $rows = []; $dump = new Dumper($output); - foreach ($this->getConstrainedPropertiesData($class) as $propertyName => $constraintsData) { + /** @var ClassMetadataInterface $classMetadata */ + $classMetadata = $this->validator->getMetadataFor($class); + + foreach ($this->getClassConstraintsData($classMetadata) as $data) { + $rows[] = [ + '-', + $data['class'], + implode(', ', $data['groups']), + $dump($data['options']), + ]; + } + + foreach ($this->getConstrainedPropertiesData($classMetadata) as $propertyName => $constraintsData) { foreach ($constraintsData as $data) { $rows[] = [ $propertyName, @@ -121,12 +133,20 @@ private function dumpValidatorsForClass(InputInterface $input, OutputInterface $ $table->render(); } - private function getConstrainedPropertiesData(string $class): array + private function getClassConstraintsData(ClassMetadataInterface $classMetadata): iterable { - $data = []; + foreach ($classMetadata->getConstraints() as $constraint) { + yield [ + 'class' => \get_class($constraint), + 'groups' => $constraint->groups, + 'options' => $this->getConstraintOptions($constraint), + ]; + } + } - /** @var ClassMetadataInterface $classMetadata */ - $classMetadata = $this->validator->getMetadataFor($class); + private function getConstrainedPropertiesData(ClassMetadataInterface $classMetadata): array + { + $data = []; foreach ($classMetadata->getConstrainedProperties() as $constrainedProperty) { $data[$constrainedProperty] = $this->getPropertyData($classMetadata, $constrainedProperty); diff --git a/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php b/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php index f6d1691662e3f..be1691454615d 100644 --- a/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php +++ b/src/Symfony/Component/Validator/Tests/Command/DebugCommandTest.php @@ -15,6 +15,7 @@ use Symfony\Component\Console\Tester\CommandTester; use Symfony\Component\Validator\Command\DebugCommand; use Symfony\Component\Validator\Constraints\Email; +use Symfony\Component\Validator\Constraints\Expression; use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Mapping\ClassMetadataInterface; use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface; @@ -38,6 +39,11 @@ public function testOutputWithClassArgument() ->with(DummyClassOne::class) ->willReturn($classMetadata); + $classMetadata + ->expects($this->once()) + ->method('getConstraints') + ->willReturn([new Expression('1 + 1 = 2')]); + $classMetadata ->expects($this->once()) ->method('getConstrainedProperties') @@ -68,22 +74,28 @@ public function testOutputWithClassArgument() Symfony\Component\Validator\Tests\Dummy\DummyClassOne ----------------------------------------------------- -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ -| Property | Name | Groups | Options | -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ -| firstArgument | Symfony\Component\Validator\Constraints\NotBlank | Default | [ | -| | | | "allowNull" => false, | -| | | | "message" => "This value should not be blank.", | -| | | | "normalizer" => null, | -| | | | "payload" => null | -| | | | ] | -| firstArgument | Symfony\Component\Validator\Constraints\Email | Default | [ | -| | | | "message" => "This value is not a valid email address.", | -| | | | "mode" => null, | -| | | | "normalizer" => null, | -| | | | "payload" => null | -| | | | ] | -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ +| Property | Name | Groups | Options | ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ +| - | Symfony\Component\Validator\Constraints\Expression | Default | [ | +| | | | "expression" => "1 + 1 = 2", | +| | | | "message" => "This value is not valid.", | +| | | | "payload" => null, | +| | | | "values" => [] | +| | | | ] | +| firstArgument | Symfony\Component\Validator\Constraints\NotBlank | Default | [ | +| | | | "allowNull" => false, | +| | | | "message" => "This value should not be blank.", | +| | | | "normalizer" => null, | +| | | | "payload" => null | +| | | | ] | +| firstArgument | Symfony\Component\Validator\Constraints\Email | Default | [ | +| | | | "message" => "This value is not a valid email address.", | +| | | | "mode" => null, | +| | | | "normalizer" => null, | +| | | | "payload" => null | +| | | | ] | ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ TXT , $tester->getDisplay(true) @@ -108,6 +120,11 @@ public function testOutputWithPathArgument() 'firstArgument', ]); + $classMetadata + ->expects($this->exactly(2)) + ->method('getConstraints') + ->willReturn([new Expression('1 + 1 = 2')]); + $classMetadata ->method('getPropertyMetadata') ->with('firstArgument') @@ -129,42 +146,54 @@ public function testOutputWithPathArgument() Symfony\Component\Validator\Tests\Dummy\DummyClassOne ----------------------------------------------------- -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ -| Property | Name | Groups | Options | -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ -| firstArgument | Symfony\Component\Validator\Constraints\NotBlank | Default | [ | -| | | | "allowNull" => false, | -| | | | "message" => "This value should not be blank.", | -| | | | "normalizer" => null, | -| | | | "payload" => null | -| | | | ] | -| firstArgument | Symfony\Component\Validator\Constraints\Email | Default | [ | -| | | | "message" => "This value is not a valid email address.", | -| | | | "mode" => null, | -| | | | "normalizer" => null, | -| | | | "payload" => null | -| | | | ] | -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ +| Property | Name | Groups | Options | ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ +| - | Symfony\Component\Validator\Constraints\Expression | Default | [ | +| | | | "expression" => "1 + 1 = 2", | +| | | | "message" => "This value is not valid.", | +| | | | "payload" => null, | +| | | | "values" => [] | +| | | | ] | +| firstArgument | Symfony\Component\Validator\Constraints\NotBlank | Default | [ | +| | | | "allowNull" => false, | +| | | | "message" => "This value should not be blank.", | +| | | | "normalizer" => null, | +| | | | "payload" => null | +| | | | ] | +| firstArgument | Symfony\Component\Validator\Constraints\Email | Default | [ | +| | | | "message" => "This value is not a valid email address.", | +| | | | "mode" => null, | +| | | | "normalizer" => null, | +| | | | "payload" => null | +| | | | ] | ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ Symfony\Component\Validator\Tests\Dummy\DummyClassTwo ----------------------------------------------------- -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ -| Property | Name | Groups | Options | -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ -| firstArgument | Symfony\Component\Validator\Constraints\NotBlank | Default | [ | -| | | | "allowNull" => false, | -| | | | "message" => "This value should not be blank.", | -| | | | "normalizer" => null, | -| | | | "payload" => null | -| | | | ] | -| firstArgument | Symfony\Component\Validator\Constraints\Email | Default | [ | -| | | | "message" => "This value is not a valid email address.", | -| | | | "mode" => null, | -| | | | "normalizer" => null, | -| | | | "payload" => null | -| | | | ] | -+---------------+--------------------------------------------------+---------+------------------------------------------------------------+ ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ +| Property | Name | Groups | Options | ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ +| - | Symfony\Component\Validator\Constraints\Expression | Default | [ | +| | | | "expression" => "1 + 1 = 2", | +| | | | "message" => "This value is not valid.", | +| | | | "payload" => null, | +| | | | "values" => [] | +| | | | ] | +| firstArgument | Symfony\Component\Validator\Constraints\NotBlank | Default | [ | +| | | | "allowNull" => false, | +| | | | "message" => "This value should not be blank.", | +| | | | "normalizer" => null, | +| | | | "payload" => null | +| | | | ] | +| firstArgument | Symfony\Component\Validator\Constraints\Email | Default | [ | +| | | | "message" => "This value is not a valid email address.", | +| | | | "mode" => null, | +| | | | "normalizer" => null, | +| | | | "payload" => null | +| | | | ] | ++---------------+----------------------------------------------------+---------+------------------------------------------------------------+ TXT , $tester->getDisplay(true) From a807523f57d4984ffbe48c01abd9dd6b8b677a30 Mon Sep 17 00:00:00 2001 From: Wojciech Kania Date: Tue, 31 May 2022 23:20:05 +0200 Subject: [PATCH 34/59] [Mime] Check that the path is a file in the DataPart::fromPath --- src/Symfony/Component/Mime/Part/DataPart.php | 2 +- src/Symfony/Component/Mime/Tests/Part/DataPartTest.php | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mime/Part/DataPart.php b/src/Symfony/Component/Mime/Part/DataPart.php index 75bcb64a9a9cb..e80a83946ef2e 100644 --- a/src/Symfony/Component/Mime/Part/DataPart.php +++ b/src/Symfony/Component/Mime/Part/DataPart.php @@ -61,7 +61,7 @@ public static function fromPath(string $path, string $name = null, string $conte $contentType = self::$mimeTypes->getMimeTypes($ext)[0] ?? 'application/octet-stream'; } - if (false === is_readable($path)) { + if (!is_file($path) || !is_readable($path)) { throw new InvalidArgumentException(sprintf('Path "%s" is not readable.', $path)); } diff --git a/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php b/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php index d8a08a24303c2..4d5b692744327 100644 --- a/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php +++ b/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Mime\Tests\Part; use PHPUnit\Framework\TestCase; +use Symfony\Component\Mime\Exception\InvalidArgumentException; use Symfony\Component\Mime\Header\Headers; use Symfony\Component\Mime\Header\IdentificationHeader; use Symfony\Component\Mime\Header\ParameterizedHeader; @@ -127,6 +128,12 @@ public function testFromPathWithMeta() ), $p->getPreparedHeaders()); } + public function testFromPathWithNotAFile() + { + $this->expectException(InvalidArgumentException::class); + DataPart::fromPath(__DIR__.'/../Fixtures/mimetypes/'); + } + public function testHasContentId() { $p = new DataPart('content'); From 12bf8cb09278a711af21f1e5579be86996991101 Mon Sep 17 00:00:00 2001 From: Wojciech Kania Date: Wed, 1 Jun 2022 21:35:40 +0200 Subject: [PATCH 35/59] [Mime] Allow url as a path in the DataPart::fromPath --- src/Symfony/Component/Mime/Part/DataPart.php | 9 ++++++- .../Mime/Tests/Part/DataPartTest.php | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Mime/Part/DataPart.php b/src/Symfony/Component/Mime/Part/DataPart.php index e80a83946ef2e..4247ce798d868 100644 --- a/src/Symfony/Component/Mime/Part/DataPart.php +++ b/src/Symfony/Component/Mime/Part/DataPart.php @@ -61,13 +61,20 @@ public static function fromPath(string $path, string $name = null, string $conte $contentType = self::$mimeTypes->getMimeTypes($ext)[0] ?? 'application/octet-stream'; } - if (!is_file($path) || !is_readable($path)) { + if ((is_file($path) && !is_readable($path)) || is_dir($path)) { throw new InvalidArgumentException(sprintf('Path "%s" is not readable.', $path)); } if (false === $handle = @fopen($path, 'r', false)) { throw new InvalidArgumentException(sprintf('Unable to open path "%s".', $path)); } + + if (!is_file($path)) { + $cache = fopen('php://temp', 'r+'); + stream_copy_to_stream($handle, $cache); + $handle = $cache; + } + $p = new self($handle, $name ?: basename($path), $contentType); $p->handle = $handle; diff --git a/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php b/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php index 4d5b692744327..34a379c2a983f 100644 --- a/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php +++ b/src/Symfony/Component/Mime/Tests/Part/DataPartTest.php @@ -134,6 +134,30 @@ public function testFromPathWithNotAFile() DataPart::fromPath(__DIR__.'/../Fixtures/mimetypes/'); } + /** + * @group network + */ + public function testFromPathWithUrl() + { + if (!\in_array('https', stream_get_wrappers())) { + $this->markTestSkipped('"https" stream wrapper is not enabled.'); + } + + $p = DataPart::fromPath($file = 'https://symfony.com/images/common/logo/logo_symfony_header.png'); + $content = file_get_contents($file); + $this->assertEquals($content, $p->getBody()); + $maxLineLength = 76; + $this->assertEquals(substr(base64_encode($content), 0, $maxLineLength), substr($p->bodyToString(), 0, $maxLineLength)); + $this->assertEquals(substr(base64_encode($content), 0, $maxLineLength), substr(implode('', iterator_to_array($p->bodyToIterable())), 0, $maxLineLength)); + $this->assertEquals('image', $p->getMediaType()); + $this->assertEquals('png', $p->getMediaSubType()); + $this->assertEquals(new Headers( + new ParameterizedHeader('Content-Type', 'image/png', ['name' => 'logo_symfony_header.png']), + new UnstructuredHeader('Content-Transfer-Encoding', 'base64'), + new ParameterizedHeader('Content-Disposition', 'attachment', ['name' => 'logo_symfony_header.png', 'filename' => 'logo_symfony_header.png']) + ), $p->getPreparedHeaders()); + } + public function testHasContentId() { $p = new DataPart('content'); From 18990bfadde27da0ee57734964f94348ac90c5f1 Mon Sep 17 00:00:00 2001 From: kor3k Date: Thu, 2 Jun 2022 08:39:11 +0200 Subject: [PATCH 36/59] [WebProfilerBundle] normalizer and encoder can be undefined in template --- .../Resources/views/Collector/serializer.html.twig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/serializer.html.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/serializer.html.twig index 7e5ed850c1329..a3050a50996e0 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/serializer.html.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Collector/serializer.html.twig @@ -188,7 +188,9 @@ {% macro render_normalizer_cell(item, index, method) %} {% set nested_normalizers_id = 'nested-normalizers-' ~ method ~ '-' ~ index %} + {% if item.normalizer is defined %} {{ item.normalizer.class }} ({{ '%.2f'|format(item.normalizer.time * 1000) }} ms) + {% endif %} {% if item.normalization|length > 1 %}
@@ -207,7 +209,9 @@ {% macro render_encoder_cell(item, index, method) %} {% set nested_encoders_id = 'nested-encoders-' ~ method ~ '-' ~ index %} + {% if item.encoder is defined %} {{ item.encoder.class }} ({{ '%.2f'|format(item.encoder.time * 1000) }} ms) + {% endif %} {% if item.encoding|length > 1 %}
From edaab8ba40452c5b0dd7a9b81c98243a0d160fa5 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 2 Jun 2022 13:39:36 +0200 Subject: [PATCH 37/59] [HttpClient] List Prisma Media as backer of version 6.1 --- src/Symfony/Component/HttpClient/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/Symfony/Component/HttpClient/README.md b/src/Symfony/Component/HttpClient/README.md index 214489b7e7f76..faffabbac21da 100644 --- a/src/Symfony/Component/HttpClient/README.md +++ b/src/Symfony/Component/HttpClient/README.md @@ -3,6 +3,23 @@ HttpClient component The HttpClient component provides powerful methods to fetch HTTP resources synchronously or asynchronously. +Sponsor +------- + +The Httpclient component for Symfony 6.1 is [backed][1] by [Prisma Media][2]. + +Prisma Media has become in 40 years the n°1 French publishing group, on print and +digitally, with 20 flagship brands of the news magazines : Femme Actuelle, GEO, +Capital, Gala or Télé-Loisirs… Today, more than 42 million French people are in +contact with one of our brand each month, either by leafing through a magazine, +surfing the web, subscribing one our mobile or tablet application or listening to +our podcasts' series. Prisma Media has successfully transformed one's business +model : from a historic player in the world of paper, it has become in 5 years +one of the first publishers of multi-media editorial content, and one of the +first creators of digital solutions. + +Help Symfony by [sponsoring][3] its development! + Resources --------- @@ -11,3 +28,7 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[2]: https://www.prismamedia.com +[3]: https://symfony.com/sponsor From 2cbfc801a0954f9b46071b311ef0a75e925d9066 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 2 Jun 2022 13:43:19 +0200 Subject: [PATCH 38/59] [Runtime] List Fulgens as backer of version 6.1 --- src/Symfony/Component/Runtime/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Symfony/Component/Runtime/README.md b/src/Symfony/Component/Runtime/README.md index 006e7a22cdf74..070937f575501 100644 --- a/src/Symfony/Component/Runtime/README.md +++ b/src/Symfony/Component/Runtime/README.md @@ -3,6 +3,17 @@ Runtime Component Symfony Runtime enables decoupling applications from global state. +Sponsor +------- + +The Runtime component for Symfony 6.1 is [backed][1] by [Fulgens][2]. + +Fulgens is a human-sized company founded in 2018. Specialized in development, we +provide support, analysis and training. Symfony being at the heart of our work, +we are committed to contribute to its development at our own scale. + +Help Symfony by [sponsoring][3] its development! + Resources --------- @@ -11,3 +22,7 @@ Resources * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) + +[1]: https://symfony.com/backers +[2]: https://fulgens.be +[3]: https://symfony.com/sponsor From 5514bdf4877f72b9b9d73ed6f30ff7d38bb69e46 Mon Sep 17 00:00:00 2001 From: Maxime Steinhausser Date: Fri, 3 Jun 2022 09:47:22 +0200 Subject: [PATCH 39/59] [WebProfilerBundle] Fix dark theme selected line highlight color & reuse css vars --- .../Resources/views/Profiler/profiler.css.twig | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/profiler.css.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/profiler.css.twig index e5a731cf19ca8..db21abf886c85 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/profiler.css.twig +++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/profiler.css.twig @@ -39,6 +39,7 @@ --highlight-default: #222222; --highlight-keyword: #a71d5d; --highlight-string: #183691; + --highlight-selected-line: rgba(255, 255, 153, 0.5); --base-0: #fff; --base-1: #f5f5f5; --base-2: #e0e0e0; @@ -80,6 +81,7 @@ --highlight-default: var(--base-6); --highlight-keyword: #ff413c; --highlight-string: #70a6fd; + --highlight-selected-line: rgba(14, 14, 14, 0.5); --base-0: #2e3136; --base-1: #444; --base-2: #666; @@ -1091,15 +1093,15 @@ table.logs .metadata { padding: 0; } #collector-content .sf-validator .trace li.selected { - background: rgba(255, 255, 153, 0.5); + background: var(--highlight-selected-line); } {# Messenger panel ========================================================================= #} #collector-content .message-bus .trace { - border: 1px solid #DDD; - background: #FFF; + border: var(--border); + background: var(--base-0); padding: 10px; margin: 0.5em 0; overflow: auto; @@ -1112,7 +1114,7 @@ table.logs .metadata { padding: 0; } #collector-content .message-bus .trace li.selected { - background: rgba(255, 255, 153, 0.5); + background: var(--highlight-selected-line); } {# Dump panel From 7b6a48562421785687387eda833c078c06589aaa Mon Sep 17 00:00:00 2001 From: Maxime Steinhausser Date: Fri, 3 Jun 2022 14:46:29 +0200 Subject: [PATCH 40/59] [Console] Escape % in command name & description from getDefault*() --- .../AddConsoleCommandPass.php | 4 +-- .../AddConsoleCommandPassTest.php | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php index 743e306d07b9a..2c9ebe668e517 100644 --- a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php +++ b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php @@ -67,7 +67,7 @@ public function process(ContainerBuilder $container) if (!$r->isSubclassOf(Command::class)) { throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class)); } - $aliases = $class::getDefaultName(); + $aliases = str_replace('%', '%%', $class::getDefaultName()); } $aliases = explode('|', $aliases ?? ''); @@ -124,7 +124,7 @@ public function process(ContainerBuilder $container) if (!$r->isSubclassOf(Command::class)) { throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class)); } - $description = $class::getDefaultDescription(); + $description = str_replace('%', '%%', $class::getDefaultDescription()); } if ($description) { diff --git a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php index aa92c76f159c3..eec4eff438eef 100644 --- a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +++ b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php @@ -153,6 +153,33 @@ public function testProcessFallsBackToDefaultDescription() $this->assertSame(1 + $initCounter, DescribedCommand::$initCounter); } + public function testEscapesDefaultFromPhp() + { + $container = new ContainerBuilder(); + $container + ->register('to-escape', EscapedDefaultsFromPhpCommand::class) + ->addTag('console.command') + ; + + $pass = new AddConsoleCommandPass(); + $pass->process($container); + + $commandLoader = $container->getDefinition('console.command_loader'); + $commandLocator = $container->getDefinition((string) $commandLoader->getArgument(0)); + + $this->assertSame(ContainerCommandLoader::class, $commandLoader->getClass()); + $this->assertSame(['%%cmd%%' => 'to-escape', '%%cmdalias%%' => 'to-escape'], $commandLoader->getArgument(1)); + $this->assertEquals([['to-escape' => new ServiceClosureArgument(new Reference('.to-escape.lazy'))]], $commandLocator->getArguments()); + $this->assertSame([], $container->getParameter('console.command.ids')); + + $command = $container->get('console.command_loader')->get('%%cmd%%'); + + $this->assertInstanceOf(LazyCommand::class, $command); + $this->assertSame('%cmd%', $command->getName()); + $this->assertSame(['%cmdalias%'], $command->getAliases()); + $this->assertSame('Creates a 80% discount', $command->getDescription()); + } + public function testProcessThrowAnExceptionIfTheServiceIsAbstract() { $this->expectException(\InvalidArgumentException::class); @@ -286,6 +313,12 @@ class NamedCommand extends Command protected static $defaultName = 'default'; } +class EscapedDefaultsFromPhpCommand extends Command +{ + protected static $defaultName = '%cmd%|%cmdalias%'; + protected static $defaultDescription = 'Creates a 80% discount'; +} + class DescribedCommand extends Command { public static $initCounter = 0; From 6cdcb1bb9436503451104bf0f45e216fabf45d36 Mon Sep 17 00:00:00 2001 From: Antoine Lamirault Date: Fri, 3 Jun 2022 22:09:54 +0200 Subject: [PATCH 41/59] [Serializer] Fix ignore attribute in Xml files --- .../Component/Serializer/Mapping/Loader/XmlFileLoader.php | 2 +- .../Component/Serializer/Tests/Fixtures/serialization.xml | 1 + .../Serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php b/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php index d023402f74ade..5ef21fb370683 100644 --- a/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php +++ b/src/Symfony/Component/Serializer/Mapping/Loader/XmlFileLoader.php @@ -72,7 +72,7 @@ public function loadClassMetadata(ClassMetadataInterface $classMetadata) } if (isset($attribute['ignore'])) { - $attributeMetadata->setIgnore((bool) $attribute['ignore']); + $attributeMetadata->setIgnore(XmlUtils::phpize($attribute['ignore'])); } foreach ($attribute->context as $node) { diff --git a/src/Symfony/Component/Serializer/Tests/Fixtures/serialization.xml b/src/Symfony/Component/Serializer/Tests/Fixtures/serialization.xml index da61e0acce8dc..69243cfddb5ae 100644 --- a/src/Symfony/Component/Serializer/Tests/Fixtures/serialization.xml +++ b/src/Symfony/Component/Serializer/Tests/Fixtures/serialization.xml @@ -37,6 +37,7 @@ + diff --git a/src/Symfony/Component/Serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php b/src/Symfony/Component/Serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php index 201cb68ba8ff8..47d6305a898f2 100644 --- a/src/Symfony/Component/Serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php +++ b/src/Symfony/Component/Serializer/Tests/Mapping/Loader/XmlFileLoaderTest.php @@ -107,6 +107,7 @@ public function testLoadIgnore() $attributesMetadata = $classMetadata->getAttributesMetadata(); $this->assertTrue($attributesMetadata['ignored1']->isIgnored()); $this->assertTrue($attributesMetadata['ignored2']->isIgnored()); + $this->assertFalse($attributesMetadata['notIgnored']->isIgnored()); } protected function getLoaderForContextMapping(): LoaderInterface From 8989377e3c4d3808449a472f54256bb3706a27ca Mon Sep 17 00:00:00 2001 From: Robert Fischer Date: Fri, 3 Jun 2022 22:31:15 +0200 Subject: [PATCH 42/59] Improve DE translations for Form/Validator --- .../Component/Form/Resources/translations/validators.de.xlf | 2 +- .../Validator/Resources/translations/validators.de.xlf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Form/Resources/translations/validators.de.xlf b/src/Symfony/Component/Form/Resources/translations/validators.de.xlf index bc8e46d1ec089..7b30839f9183d 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.de.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.de.xlf @@ -12,7 +12,7 @@ The CSRF token is invalid. Please try to resubmit the form. - Der CSRF-Token ist ungültig. Versuchen Sie bitte das Formular erneut zu senden. + Der CSRF-Token ist ungültig. Versuchen Sie bitte, das Formular erneut zu senden. This value is not a valid HTML5 color. diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf index 00be24fb8ac5f..1c6d0c6c95873 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.de.xlf @@ -220,7 +220,7 @@ Unsupported card type or invalid card number. - Nicht unterstützer Kartentyp oder ungültige Kartennummer. + Nicht unterstützter Kartentyp oder ungültige Kartennummer. This is not a valid International Bank Account Number (IBAN). @@ -312,7 +312,7 @@ This is not a valid Business Identifier Code (BIC). - Dieser Wert ist kein gültiger BIC. + Dieser Wert ist keine gültige internationale Bankleitzahl (BIC). Error From d0923b21c25abec0577572f977073f115ff2ad59 Mon Sep 17 00:00:00 2001 From: Jakub Janata Date: Sun, 5 Jun 2022 21:19:21 +0200 Subject: [PATCH 43/59] [HttpKernel] Fix BackedEnumValueResolver already resolved enum value --- .../Controller/ArgumentResolver/BackedEnumValueResolver.php | 6 ++++++ .../ArgumentResolver/BackedEnumValueResolverTest.php | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php b/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php index 054354963b313..8a84ac130bdca 100644 --- a/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php +++ b/src/Symfony/Component/HttpKernel/Controller/ArgumentResolver/BackedEnumValueResolver.php @@ -51,6 +51,12 @@ public function resolve(Request $request, ArgumentMetadata $argument): iterable return; } + if ($value instanceof \BackedEnum) { + yield $value; + + return; + } + if (!\is_int($value) && !\is_string($value)) { throw new \LogicException(sprintf('Could not resolve the "%s $%s" controller argument: expecting an int or string, got %s.', $argument->getType(), $argument->getName(), get_debug_type($value))); } diff --git a/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/BackedEnumValueResolverTest.php b/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/BackedEnumValueResolverTest.php index 41505179f1bf3..03fbe6b7678ea 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/BackedEnumValueResolverTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/BackedEnumValueResolverTest.php @@ -95,6 +95,12 @@ public function provideTestResolveData(): iterable ), [null], ]; + + yield 'already resolved attribute value' => [ + self::createRequest(['suit' => Suit::Hearts]), + self::createArgumentMetadata('suit', Suit::class), + [Suit::Hearts], + ]; } public function testResolveThrowsNotFoundOnInvalidValue() From d976b24b171276e37b634cf741fd7847b805e071 Mon Sep 17 00:00:00 2001 From: Jules Pietri Date: Mon, 6 Jun 2022 13:51:59 +0200 Subject: [PATCH 44/59] [FrameworkBundle] Fix XML cache config --- .../Resources/config/schema/symfony-1.0.xsd | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd index faa88efbbf7a2..0d5e45f9c2b7e 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd @@ -267,7 +267,14 @@ - + + + + + + + + From 2ace20a2350ebdd02871fc23768c5cf5324b7099 Mon Sep 17 00:00:00 2001 From: Maxime Steinhausser Date: Fri, 3 Jun 2022 14:46:29 +0200 Subject: [PATCH 45/59] [Console] Escape % in command name & description from getDefault*() --- .../AddConsoleCommandPass.php | 2 +- .../AddConsoleCommandPassTest.php | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php index 666c8fa5987cf..aff892cc25b7e 100644 --- a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php +++ b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php @@ -55,7 +55,7 @@ public function process(ContainerBuilder $container) if (!$r->isSubclassOf(Command::class)) { throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class)); } - $commandName = $class::getDefaultName(); + $commandName = $class::getDefaultName() !== null ? str_replace('%', '%%', $class::getDefaultName()) : null; } if (null === $commandName) { diff --git a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php index 5e59f8fab3746..9c86fa98f298d 100644 --- a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +++ b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php @@ -118,6 +118,30 @@ public function visibilityProvider() ]; } + public function testEscapesDefaultFromPhp() + { + $container = new ContainerBuilder(); + $container + ->register('to-escape', EscapedDefaultsFromPhpCommand::class) + ->addTag('console.command') + ; + + $pass = new AddConsoleCommandPass(); + $pass->process($container); + + $commandLoader = $container->getDefinition('console.command_loader'); + $commandLocator = $container->getDefinition((string) $commandLoader->getArgument(0)); + + $this->assertSame(ContainerCommandLoader::class, $commandLoader->getClass()); + $this->assertSame(['%%cmd%%' => 'to-escape'], $commandLoader->getArgument(1)); + $this->assertEquals([['to-escape' => new ServiceClosureArgument(new TypedReference('to-escape', EscapedDefaultsFromPhpCommand::class))]], $commandLocator->getArguments()); + $this->assertSame([], $container->getParameter('console.command.ids')); + + $command = $container->get('console.command_loader')->get('%%cmd%%'); + + $this->assertSame('%cmd%', $command->getName()); + } + public function testProcessThrowAnExceptionIfTheServiceIsAbstract() { $this->expectException(\InvalidArgumentException::class); @@ -250,3 +274,8 @@ class NamedCommand extends Command { protected static $defaultName = 'default'; } + +class EscapedDefaultsFromPhpCommand extends Command +{ + protected static $defaultName = '%cmd%'; +} From deb04f2b14288d940127e8aefad9349d9f1a8c78 Mon Sep 17 00:00:00 2001 From: Maxime Steinhausser Date: Mon, 6 Jun 2022 14:28:06 +0200 Subject: [PATCH 46/59] [Console] Prevent PHP 8.1 str_replace deprec on null Prevents: > Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated on `getDefaultName()` returning `null` --- .../Console/DependencyInjection/AddConsoleCommandPass.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php index 2c9ebe668e517..c55c5db4e3be8 100644 --- a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php +++ b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php @@ -67,7 +67,7 @@ public function process(ContainerBuilder $container) if (!$r->isSubclassOf(Command::class)) { throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class)); } - $aliases = str_replace('%', '%%', $class::getDefaultName()); + $aliases = str_replace('%', '%%', $class::getDefaultName() ?? ''); } $aliases = explode('|', $aliases ?? ''); From 7a08b52048af0704d4010986f392c62909dd1f9e Mon Sep 17 00:00:00 2001 From: HypeMC Date: Tue, 7 Jun 2022 04:10:23 +0200 Subject: [PATCH 47/59] [Console] Fix deprecation when description is null str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated --- .../Console/DependencyInjection/AddConsoleCommandPass.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php index c55c5db4e3be8..1fbb212e78a26 100644 --- a/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php +++ b/src/Symfony/Component/Console/DependencyInjection/AddConsoleCommandPass.php @@ -124,7 +124,7 @@ public function process(ContainerBuilder $container) if (!$r->isSubclassOf(Command::class)) { throw new InvalidArgumentException(sprintf('The service "%s" tagged "%s" must be a subclass of "%s".', $id, $this->commandTag, Command::class)); } - $description = str_replace('%', '%%', $class::getDefaultDescription()); + $description = str_replace('%', '%%', $class::getDefaultDescription() ?? ''); } if ($description) { From 417824424780471ea12a7ee6e1e0fe8418fb2fe3 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 7 Jun 2022 10:09:27 +0200 Subject: [PATCH 48/59] use the outermost wrapping DBAL connection --- .../Bridge/Doctrine/Transport/PostgreSqlConnection.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php index 130ca0f9b4195..5227df8ded5d0 100644 --- a/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php +++ b/src/Symfony/Component/Messenger/Bridge/Doctrine/Transport/PostgreSqlConnection.php @@ -11,7 +11,6 @@ namespace Symfony\Component\Messenger\Bridge\Doctrine\Transport; -use Doctrine\DBAL\Driver\PDO\Connection as DoctrinePdoConnection; use Doctrine\DBAL\Schema\Table; /** @@ -73,8 +72,8 @@ public function get(): ?array if (method_exists($this->driverConnection, 'getNativeConnection')) { $wrappedConnection = $this->driverConnection->getNativeConnection(); } else { - $wrappedConnection = $this->driverConnection->getWrappedConnection(); - if (!$wrappedConnection instanceof \PDO && $wrappedConnection instanceof DoctrinePdoConnection) { + $wrappedConnection = $this->driverConnection; + while (method_exists($wrappedConnection, 'getWrappedConnection')) { $wrappedConnection = $wrappedConnection->getWrappedConnection(); } } From 24c65bf8a84732c7a98a1df2e45a2044ef6fe26e Mon Sep 17 00:00:00 2001 From: Marvin Feldmann Date: Fri, 3 Jun 2022 18:53:44 +0200 Subject: [PATCH 49/59] Fix choice filter error when loading mix of grouped and non-grouped choices --- .../Loader/FilterChoiceLoaderDecorator.php | 13 ++++++++--- .../FilterChoiceLoaderDecoratorTest.php | 23 +++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Form/ChoiceList/Loader/FilterChoiceLoaderDecorator.php b/src/Symfony/Component/Form/ChoiceList/Loader/FilterChoiceLoaderDecorator.php index a52f3b82e432e..250d6d2a146db 100644 --- a/src/Symfony/Component/Form/ChoiceList/Loader/FilterChoiceLoaderDecorator.php +++ b/src/Symfony/Component/Form/ChoiceList/Loader/FilterChoiceLoaderDecorator.php @@ -36,10 +36,17 @@ protected function loadChoices(): iterable } foreach ($structuredValues as $group => $values) { - if ($values && $filtered = array_filter($list->getChoicesForValues($values), $this->filter)) { - $choices[$group] = $filtered; + if (is_array($values)) { + if ($values && $filtered = array_filter($list->getChoicesForValues($values), $this->filter)) { + $choices[$group] = $filtered; + } + continue; + // filter empty groups + } + + if ($filtered = array_filter($list->getChoicesForValues([$values]), $this->filter)) { + $choices[$group] = $filtered[0]; } - // filter empty groups } return $choices ?? []; diff --git a/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php b/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php index d4cc3ce72a4d0..1f91a47275a33 100644 --- a/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php +++ b/src/Symfony/Component/Form/Tests/ChoiceList/Loader/FilterChoiceLoaderDecoratorTest.php @@ -47,6 +47,29 @@ public function testLoadChoiceListWithGroupedChoices() ]), $loader->loadChoiceList()); } + public function testLoadChoiceListMixedWithGroupedAndNonGroupedChoices() + { + $filter = function ($choice) { + return 0 === $choice % 2; + }; + + $choices = array_merge(range(1, 9), ['grouped' => range(10, 40, 5)]); + $loader = new FilterChoiceLoaderDecorator(new ArrayChoiceLoader($choices), $filter); + + $this->assertEquals(new ArrayChoiceList([ + 1 => 2, + 3 => 4, + 5 => 6, + 7 => 8, + 'grouped' => [ + 0 => 10, + 2 => 20, + 4 => 30, + 6 => 40, + ], + ]), $loader->loadChoiceList()); + } + public function testLoadValuesForChoices() { $evenValues = [1 => '2', 3 => '4']; From 66795292494be054ec4744078e3df7b325522b0c Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Wed, 8 Jun 2022 00:10:37 +0200 Subject: [PATCH 50/59] fix merge --- .../Component/Security/Http/Authenticator/Passport/Passport.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php b/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php index 0180bd8916898..75feb599c3543 100644 --- a/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php +++ b/src/Symfony/Component/Security/Http/Authenticator/Passport/Passport.php @@ -68,7 +68,7 @@ public function getUser(): UserInterface * * @return $this */ - public function addBadge(BadgeInterface $badge): PassportInterface + public function addBadge(BadgeInterface $badge): static { $this->badges[\get_class($badge)] = $badge; From 21daba0ef5f2323531767d8c37e9cf1c2a531f2e Mon Sep 17 00:00:00 2001 From: Thomas Calvet Date: Wed, 8 Jun 2022 14:18:28 +0200 Subject: [PATCH 51/59] [Routing] Fix $requirements PHPDoc for SCA --- .../Component/Routing/Annotation/Route.php | 6 +++--- src/Symfony/Component/Routing/Route.php | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Symfony/Component/Routing/Annotation/Route.php b/src/Symfony/Component/Routing/Annotation/Route.php index 1d97be37c1226..a9ab5f3c9fc4a 100644 --- a/src/Symfony/Component/Routing/Annotation/Route.php +++ b/src/Symfony/Component/Routing/Annotation/Route.php @@ -30,9 +30,9 @@ class Route private array $schemes; /** - * @param string[] $requirements - * @param string[]|string $methods - * @param string[]|string $schemes + * @param array $requirements + * @param string[]|string $methods + * @param string[]|string $schemes */ public function __construct( string|array $path = null, diff --git a/src/Symfony/Component/Routing/Route.php b/src/Symfony/Component/Routing/Route.php index 4966a1aa58d16..dc0554be902c1 100644 --- a/src/Symfony/Component/Routing/Route.php +++ b/src/Symfony/Component/Routing/Route.php @@ -37,14 +37,14 @@ class Route implements \Serializable * * compiler_class: A class name able to compile this route instance (RouteCompiler by default) * * utf8: Whether UTF-8 matching is enforced ot not * - * @param string $path The path pattern to match - * @param array $defaults An array of default parameter values - * @param array $requirements An array of requirements for parameters (regexes) - * @param array $options An array of options - * @param string|null $host The host pattern to match - * @param string|string[] $schemes A required URI scheme or an array of restricted schemes - * @param string|string[] $methods A required HTTP method or an array of restricted methods - * @param string|null $condition A condition that should evaluate to true for the route to match + * @param string $path The path pattern to match + * @param array $defaults An array of default parameter values + * @param array $requirements An array of requirements for parameters (regexes) + * @param array $options An array of options + * @param string|null $host The host pattern to match + * @param string|string[] $schemes A required URI scheme or an array of restricted schemes + * @param string|string[] $methods A required HTTP method or an array of restricted methods + * @param string|null $condition A condition that should evaluate to true for the route to match */ public function __construct(string $path, array $defaults = [], array $requirements = [], array $options = [], ?string $host = '', string|array $schemes = [], string|array $methods = [], ?string $condition = '') { From 5b18222a37b2e070bef3858e3cb08384734bca2e Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Wed, 8 Jun 2022 15:49:57 +0200 Subject: [PATCH 52/59] [Console] Fix tests --- .../Tests/DependencyInjection/AddConsoleCommandPassTest.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php index 7b4ff08b0ff4c..ddda0f47280d0 100644 --- a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +++ b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php @@ -314,10 +314,9 @@ class NamedCommand extends Command { } +#[AsCommand(name: '%cmd%|%cmdalias%', description: 'Creates a 80% discount')] class EscapedDefaultsFromPhpCommand extends Command { - protected static $defaultName = '%cmd%|%cmdalias%'; - protected static $defaultDescription = 'Creates a 80% discount'; } #[AsCommand(name: '|cmdname|cmdalias', description: 'Just testing')] From 36e6fa09350a7489123623ebd552cf543591cb6b Mon Sep 17 00:00:00 2001 From: Phillip Look Date: Fri, 3 Jun 2022 12:29:57 +0200 Subject: [PATCH 53/59] [HttpClient][WebProfilerBundle] Catch errors when encoding body for curl command line --- .../DataCollector/HttpClientDataCollector.php | 6 ++++- .../HttpClientDataCollectorTest.php | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php b/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php index 292cdf3945bcf..9c92db2cc5582 100644 --- a/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php +++ b/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php @@ -194,7 +194,11 @@ private function getCurlCommand(array $trace): ?string $dataArg[] = '--data '.escapeshellarg(json_encode($json, \JSON_PRETTY_PRINT)); } elseif ($body = $trace['options']['body'] ?? null) { if (\is_string($body)) { - $dataArg[] = '--data '.escapeshellarg($body); + try { + $dataArg[] = '--data '.escapeshellarg($body); + } catch (\ValueError $e) { + return null; + } } elseif (\is_array($body)) { foreach ($body as $key => $value) { $dataArg[] = '--data '.escapeshellarg("$key=$value"); diff --git a/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php b/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php index ebe4c2c52569b..37bba8c79aac2 100755 --- a/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php +++ b/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php @@ -343,6 +343,28 @@ public function testItDoesNotGeneratesCurlCommandsForUnsupportedBodyType() self::assertNull($curlCommand); } + /** + * @requires extension openssl + */ + public function testItDoesNotGeneratesCurlCommandsForNotEncodableBody() + { + $sut = new HttpClientDataCollector(); + $sut->registerClient('http_client', $this->httpClientThatHasTracedRequests([ + [ + 'method' => 'POST', + 'url' => 'http://localhost:8057/json', + 'options' => [ + 'body' => "\0", + ], + ], + ])); + $sut->collect(new Request(), new Response()); + $collectedData = $sut->getClients(); + self::assertCount(1, $collectedData['http_client']['traces']); + $curlCommand = $collectedData['http_client']['traces'][0]['curlCommand']; + self::assertNull($curlCommand); + } + private function httpClientThatHasTracedRequests($tracedRequests): TraceableHttpClient { $httpClient = new TraceableHttpClient(new NativeHttpClient()); From d0cf7594896eee5ff46bdb40743e8eac9b7eb9df Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Thu, 9 Jun 2022 12:15:14 +0200 Subject: [PATCH 54/59] [FrameworkBundle] Disable Serializer data collect by default --- .../Bundle/FrameworkBundle/CHANGELOG.md | 1 + .../DependencyInjection/Configuration.php | 1 + .../DependencyInjection/FrameworkExtension.php | 2 +- .../Resources/config/schema/symfony-1.0.xsd | 1 + .../DependencyInjection/ConfigurationTest.php | 1 + .../Fixtures/php/profiler.php | 3 +++ .../php/profiler_collect_serializer_data.php | 12 ++++++++++++ .../Fixtures/xml/profiler.xml | 1 + .../xml/profiler_collect_serializer_data.xml | 13 +++++++++++++ .../Fixtures/yml/profiler.yml | 2 ++ .../yml/profiler_collect_serializer_data.yml | 7 +++++++ .../FrameworkExtensionTest.php | 18 ++++++++++++++++++ 12 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler_collect_serializer_data.php create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler_collect_serializer_data.xml create mode 100644 src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler_collect_serializer_data.yml diff --git a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md index 0a1c48cc28e37..40698a59a6023 100644 --- a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md +++ b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md @@ -15,6 +15,7 @@ CHANGELOG * Add tag `routing.condition_service` to autoconfigure routing condition services * Automatically register kernel methods marked with the `Symfony\Component\Routing\Annotation\Route` attribute or annotation as controllers in `MicroKernelTrait` * Deprecate not setting the `http_method_override` config option. The default value will change to `false` in 7.0. + * Add `framework.profiler.collect_serializer_data` config option, set it to `true` to enable the serializer data collector and profiler panel 6.0 --- diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php index 65a648f24c6fa..43f268db06707 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php @@ -325,6 +325,7 @@ private function addProfilerSection(ArrayNodeDefinition $rootNode) ->booleanNode('only_exceptions')->defaultFalse()->end() ->booleanNode('only_main_requests')->defaultFalse()->end() ->scalarNode('dsn')->defaultValue('file:%kernel.cache_dir%/profiler')->end() + ->booleanNode('collect_serializer_data')->info('Enables the serializer data collector and profiler panel')->defaultFalse()->end() ->end() ->end() ->end() diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 25f125be6bec9..ff3060dd038c5 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -826,7 +826,7 @@ private function registerProfilerConfiguration(array $config, ContainerBuilder $ $loader->load('notifier_debug.php'); } - if ($this->serializerConfigEnabled) { + if ($this->serializerConfigEnabled && $config['collect_serializer_data']) { $loader->load('serializer_debug.php'); } diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd index 040a6786c7607..cd53d88db00ac 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd @@ -103,6 +103,7 @@ + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php index e5b1a947e3313..c27a22fe85c19 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php @@ -468,6 +468,7 @@ protected static function getBundleDefaultConfig() 'dsn' => 'file:%kernel.cache_dir%/profiler', 'collect' => true, 'collect_parameter' => null, + 'collect_serializer_data' => false, ], 'translator' => [ 'enabled' => !class_exists(FullStack::class), diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler.php index 955da41fab436..6cf9ee4a671c4 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler.php @@ -5,4 +5,7 @@ 'profiler' => [ 'enabled' => true, ], + 'serializer' => [ + 'enabled' => true + ], ]); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler_collect_serializer_data.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler_collect_serializer_data.php new file mode 100644 index 0000000000000..e870073299c59 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/profiler_collect_serializer_data.php @@ -0,0 +1,12 @@ +loadFromExtension('framework', [ + 'http_method_override' => false, + 'profiler' => [ + 'enabled' => true, + 'collect_serializer_data' => true, + ], + 'serializer' => [ + 'enabled' => true, + ] +]); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler.xml index 9b157c920d11a..6a46cbc3dbda7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler.xml @@ -8,5 +8,6 @@ + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler_collect_serializer_data.xml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler_collect_serializer_data.xml new file mode 100644 index 0000000000000..e17589222d814 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/profiler_collect_serializer_data.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler.yml index 13279e1958fa5..190e82dae5b71 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler.yml +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler.yml @@ -2,3 +2,5 @@ framework: http_method_override: false profiler: enabled: true + serializer: + enabled: true diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler_collect_serializer_data.yml b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler_collect_serializer_data.yml new file mode 100644 index 0000000000000..ad397fb99ee0c --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/yml/profiler_collect_serializer_data.yml @@ -0,0 +1,7 @@ +framework: + http_method_override: false + serializer: + enabled: true + profiler: + enabled: true + collect_serializer_data: true diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index eca45610629f2..c932298ce2cdd 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -253,6 +253,24 @@ public function testDisabledProfiler() $this->assertFalse($container->hasDefinition('data_collector.config'), '->registerProfilerConfiguration() does not load collectors.xml'); } + public function testProfilerCollectSerializerDataEnabled() + { + $container = $this->createContainerFromFile('profiler_collect_serializer_data'); + + $this->assertTrue($container->hasDefinition('profiler')); + $this->assertTrue($container->hasDefinition('serializer.data_collector')); + $this->assertTrue($container->hasDefinition('debug.serializer')); + } + + public function testProfilerCollectSerializerDataDefaultDisabled() + { + $container = $this->createContainerFromFile('profiler'); + + $this->assertTrue($container->hasDefinition('profiler')); + $this->assertFalse($container->hasDefinition('serializer.data_collector')); + $this->assertFalse($container->hasDefinition('debug.serializer')); + } + public function testWorkflows() { $container = $this->createContainerFromFile('workflows'); From 2dc8e6d7e6a06dfdb5219370e0447f86a8ef5471 Mon Sep 17 00:00:00 2001 From: Jules Pietri Date: Thu, 9 Jun 2022 13:29:45 +0200 Subject: [PATCH 55/59] [Messenger] Remove redundant interface in DoctrineReceiver --- .../Messenger/Transport/Doctrine/DoctrineReceiver.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Symfony/Component/Messenger/Transport/Doctrine/DoctrineReceiver.php b/src/Symfony/Component/Messenger/Transport/Doctrine/DoctrineReceiver.php index 3624a875218ae..b582e484013a7 100644 --- a/src/Symfony/Component/Messenger/Transport/Doctrine/DoctrineReceiver.php +++ b/src/Symfony/Component/Messenger/Transport/Doctrine/DoctrineReceiver.php @@ -21,14 +21,13 @@ use Symfony\Component\Messenger\Stamp\TransportMessageIdStamp; use Symfony\Component\Messenger\Transport\Receiver\ListableReceiverInterface; use Symfony\Component\Messenger\Transport\Receiver\MessageCountAwareInterface; -use Symfony\Component\Messenger\Transport\Receiver\ReceiverInterface; use Symfony\Component\Messenger\Transport\Serialization\PhpSerializer; use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface; /** * @author Vincent Touzet */ -class DoctrineReceiver implements ReceiverInterface, MessageCountAwareInterface, ListableReceiverInterface +class DoctrineReceiver implements ListableReceiverInterface, MessageCountAwareInterface { private const MAX_RETRIES = 3; private $retryingSafetyCounter = 0; From 0bc7caf1e7b571f33ad7edd823e0877410a4798e Mon Sep 17 00:00:00 2001 From: HypeMC Date: Sat, 4 Jun 2022 18:23:38 +0200 Subject: [PATCH 56/59] [HttpClient] Copy as curl fixes --- .../DataCollector/HttpClientDataCollector.php | 10 +++-- .../HttpClientDataCollectorTest.php | 44 +++++++++++++++++-- 2 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php b/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php index 292cdf3945bcf..7d8409e7309f2 100644 --- a/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php +++ b/src/Symfony/Component/HttpClient/DataCollector/HttpClientDataCollector.php @@ -11,6 +11,7 @@ namespace Symfony\Component\HttpClient\DataCollector; +use Symfony\Component\HttpClient\HttpClientTrait; use Symfony\Component\HttpClient\TraceableHttpClient; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -23,6 +24,8 @@ */ final class HttpClientDataCollector extends DataCollector implements LateDataCollectorInterface { + use HttpClientTrait; + /** * @var TraceableHttpClient[] */ @@ -176,7 +179,7 @@ private function getCurlCommand(array $trace): ?string } $debug = explode("\n", $trace['info']['debug']); - $url = $trace['url']; + $url = self::mergeQueryString($trace['url'], $trace['options']['query'] ?? [], true); $command = ['curl', '--compressed']; if (isset($trace['options']['resolve'])) { @@ -196,8 +199,9 @@ private function getCurlCommand(array $trace): ?string if (\is_string($body)) { $dataArg[] = '--data '.escapeshellarg($body); } elseif (\is_array($body)) { - foreach ($body as $key => $value) { - $dataArg[] = '--data '.escapeshellarg("$key=$value"); + $body = explode('&', self::normalizeBody($body)); + foreach ($body as $value) { + $dataArg[] = '--data '.escapeshellarg(urldecode($value)); } } else { return null; diff --git a/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php b/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php index ebe4c2c52569b..7d36c619f74cb 100755 --- a/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php +++ b/src/Symfony/Component/HttpClient/Tests/DataCollector/HttpClientDataCollectorTest.php @@ -244,6 +244,21 @@ public function provideCurlRequests(): iterable 'foo' => 'fooval', 'bar' => 'barval', 'baz' => 'bazval', + 'foobar' => [ + 'baz' => 'bazval', + 'qux' => 'quxval', + ], + 'bazqux' => ['bazquxval1', 'bazquxval2'], + 'object' => (object) [ + 'fooprop' => 'foopropval', + 'barprop' => 'barpropval', + ], + 'tostring' => new class() { + public function __toString(): string + { + return 'tostringval'; + } + }, ], ], ], @@ -253,14 +268,37 @@ public function provideCurlRequests(): iterable --url %1$shttp://localhost:8057/json%1$s \\ --header %1$sAccept: */*%1$s \\ --header %1$sContent-Type: application/x-www-form-urlencoded%1$s \\ - --header %1$sContent-Length: 32%1$s \\ + --header %1$sContent-Length: 211%1$s \\ --header %1$sAccept-Encoding: gzip%1$s \\ --header %1$sUser-Agent: Symfony HttpClient/Native%1$s \\ - --data %1$sfoo=fooval%1$s --data %1$sbar=barval%1$s --data %1$sbaz=bazval%1$s', + --data %1$sfoo=fooval%1$s --data %1$sbar=barval%1$s --data %1$sbaz=bazval%1$s --data %1$sfoobar[baz]=bazval%1$s --data %1$sfoobar[qux]=quxval%1$s --data %1$sbazqux[0]=bazquxval1%1$s --data %1$sbazqux[1]=bazquxval2%1$s --data %1$sobject[fooprop]=foopropval%1$s --data %1$sobject[barprop]=barpropval%1$s --data %1$stostring=tostringval%1$s', ]; - // escapeshellarg on Windows replaces double quotes with spaces + // escapeshellarg on Windows replaces double quotes & percent signs with spaces if ('\\' !== \DIRECTORY_SEPARATOR) { + yield 'GET with query' => [ + [ + 'method' => 'GET', + 'url' => 'http://localhost:8057/?foo=fooval&bar=barval', + 'options' => [ + 'query' => [ + 'bar' => 'newbarval', + 'foobar' => [ + 'baz' => 'bazval', + 'qux' => 'quxval', + ], + 'bazqux' => ['bazquxval1', 'bazquxval2'], + ], + ], + ], + 'curl \\ + --compressed \\ + --request GET \\ + --url %1$shttp://localhost:8057/?foo=fooval&bar=newbarval&foobar%%5Bbaz%%5D=bazval&foobar%%5Bqux%%5D=quxval&bazqux%%5B0%%5D=bazquxval1&bazqux%%5B1%%5D=bazquxval2%1$s \\ + --header %1$sAccept: */*%1$s \\ + --header %1$sAccept-Encoding: gzip%1$s \\ + --header %1$sUser-Agent: Symfony HttpClient/Native%1$s', + ]; yield 'POST with json' => [ [ 'method' => 'POST', From 05be7b2102c379b3258849213ee1e0a61d7fe7d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Thu, 9 Jun 2022 14:59:41 +0200 Subject: [PATCH 57/59] Fix tests related to Doctrine method renaming --- .../Component/Lock/Tests/Store/DoctrineDbalStoreTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php b/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php index f44c2fd5cfc6e..3f46311ffe9ce 100644 --- a/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php +++ b/src/Symfony/Component/Lock/Tests/Store/DoctrineDbalStoreTest.php @@ -120,7 +120,7 @@ public function testCreatesTableInTransaction(string $platform) ->willReturn(true); $platform = $this->createMock($platform); - $platform->method('getCreateTableSQL') + $platform->method(method_exists(AbstractPlatform::class, 'getCreateTablesSQL') ? 'getCreateTablesSQL' : 'getCreateTableSQL') ->willReturn(['create sql stmt']); $conn->method('getDatabasePlatform') @@ -165,7 +165,7 @@ public function testTableCreationInTransactionNotSupported() ->willReturn(true); $platform = $this->createMock(AbstractPlatform::class); - $platform->method('getCreateTableSQL') + $platform->method(method_exists(AbstractPlatform::class, 'getCreateTablesSQL') ? 'getCreateTablesSQL' : 'getCreateTableSQL') ->willReturn(['create sql stmt']); $conn->expects($this->atLeast(2)) @@ -202,7 +202,7 @@ public function testCreatesTableOutsideTransaction() ->willReturn(false); $platform = $this->createMock(AbstractPlatform::class); - $platform->method('getCreateTableSQL') + $platform->method(method_exists(AbstractPlatform::class, 'getCreateTablesSQL') ? 'getCreateTablesSQL' : 'getCreateTableSQL') ->willReturn(['create sql stmt']); $conn->method('getDatabasePlatform') From 49b562ddb6e0f3afb1b00fcd3c9e550e750ed41d Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 9 Jun 2022 19:31:28 +0200 Subject: [PATCH 58/59] Update CHANGELOG for 6.1.1 --- CHANGELOG-6.1.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/CHANGELOG-6.1.md b/CHANGELOG-6.1.md index 861bc8ed110f7..ecfb505d25ca3 100644 --- a/CHANGELOG-6.1.md +++ b/CHANGELOG-6.1.md @@ -7,6 +7,36 @@ in 6.1 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/v6.1.0...v6.1.1 +* 6.1.1 (2022-06-09) + + * bug #46570 [HttpClient][WebProfilerBundle] Catch errors when encoding body for c… (Phillip Look) + * bug #46583 [HttpClient] Copy as curl fixes (HypeMC) + * bug #46625 [FrameworkBundle] Disable Serializer data collect by default (chalasr) + * bug #46545 Fix getting class constraints on debug command (loic425) + * bug #46548 [Mime] Allow url as a path in the DataPart::fromPath (wkania) + * bug #46576 Fix choice filter error when loading mix of grouped and non-grouped choices (BreyndotEchse) + * bug #46594 [FrameworkBundle] Fix XML cache config (HeahDude) + * bug #46610 [Messenger] use the outermost wrapping DBAL connection (xabbuh) + * bug #46595 [Console] Escape in command name & description from getDefaultName() (ogizanagi) + * bug #46608 [Console] Fix deprecation when description is null (HypeMC) + * bug #46586 [HttpKernel] Fix BackedEnumValueResolver already resolved enum value (janatjak) + * bug #46574 [Console] Escape in command name & description from PHP (getDefault* methods) (ogizanagi) + * bug #46577 [Serializer] Fix ignore attribute in Xml files (alamirault) + * bug #46565 [WebProfilerBundle] Fix dark theme selected line highlight color & reuse css vars (ogizanagi) + * bug #46553 [WebProfilerBundle] normalizer and encoder can be undefined in template (kor3k) + * bug #46538 [FrameworkBundle][HtmlSanitizer] Fix calling `allowStaticElements` when setting `allow_all_static_elements: true` (norkunas) + * bug #46525 [Serializer] Get attributeContext after converting name (zenas1210) + * bug #46535 [Mime] Check that the path is a file in the DataPart::fromPath (wkania) + * bug #46543 [Cache] do not pass null to strlen() (xabbuh) + * bug #46523 [HttpFoundation] Revert "Send `Content-Length` when calling `Response::send()` and the content is a non-empty string" (nicolas-grekas) + * bug #46526 [Serializer] Added missing __call to TraceableEncoder (danielburger1337) + * bug #46527 [Serializer] Forget partially collected traces (mtarld) + * bug #46515 [PropertyInfo] Fix extracting int range type (norkunas) + * bug #46511 [Serializer] Added missing __call to TraceableNormalizer and TraceableSerializer (danielburger1337) + * bug #46478 [Contracts] remove static cache from `ServiceSubscriberTrait` (kbond) + * bug #46480 [FrameworkBundle][TwigBundle] Fix registering html-sanitizer services (nicolas-grekas) + * bug #46475 [MonologBridge] ensure that the $response property is initialized before being read (xabbuh) + * 6.1.0 (2022-05-27) * bug #46453 [PropertyInfo] Fix resolution of partially docblock covered constructors (ostrolucky) From 692b3fffeadd74176b881077d13037f8da27302a Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 9 Jun 2022 19:31:33 +0200 Subject: [PATCH 59/59] Update VERSION for 6.1.1 --- 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 0be22efad064a..ab882201ee929 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -78,12 +78,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl */ private static array $freshCache = []; - public const VERSION = '6.1.1-DEV'; + public const VERSION = '6.1.1'; public const VERSION_ID = 60101; public const MAJOR_VERSION = 6; public const MINOR_VERSION = 1; public const RELEASE_VERSION = 1; - public const EXTRA_VERSION = 'DEV'; + public const EXTRA_VERSION = ''; public const END_OF_MAINTENANCE = '01/2023'; public const END_OF_LIFE = '01/2023';