Merge branch '3.4' into 4.4

* 3.4:
  updated VERSION for 3.4.40
  update CONTRIBUTORS for 3.4.40
  updated CHANGELOG for 3.4.40
  [WebProfilerBundle] changed label of peak memory usage in the time & memory panels (MB into MiB)
  add tests for the ConstraintViolationBuilder class
  Improve dirname usage
  [PhpUnitBridge] Use COMPOSER_BINARY env var if available
  [YAML] escape DEL(\x7f)
  fix compatibility with phpunit 9
  [Cache] skip APCu in chains when the backend is disabled
  [Form] apply automatically step=1 for datetime-local input
This commit is contained in:
Nicolas Grekas 2020-04-28 19:55:16 +02:00
commit 49b74baab4
13 changed files with 199 additions and 44 deletions

View File

@ -24,10 +24,10 @@ Symfony is the result of the work of many people who made the code better
- Kris Wallsmith (kriswallsmith) - Kris Wallsmith (kriswallsmith)
- Yonel Ceruto (yonelceruto) - Yonel Ceruto (yonelceruto)
- Hugo Hamon (hhamon) - Hugo Hamon (hhamon)
- Wouter de Jong (wouterj)
- Thomas Calvet (fancyweb)
- Abdellatif Ait boudad (aitboudad) - Abdellatif Ait boudad (aitboudad)
- Samuel ROZE (sroze) - Samuel ROZE (sroze)
- Thomas Calvet (fancyweb)
- Wouter de Jong (wouterj)
- Romain Neutron (romain) - Romain Neutron (romain)
- Pascal Borreli (pborreli) - Pascal Borreli (pborreli)
- Joseph Bielawski (stloyd) - Joseph Bielawski (stloyd)
@ -37,8 +37,8 @@ Symfony is the result of the work of many people who made the code better
- Jules Pietri (heah) - Jules Pietri (heah)
- Hamza Amrouche (simperfit) - Hamza Amrouche (simperfit)
- Martin Hasoň (hason) - Martin Hasoň (hason)
- Jeremy Mikola (jmikola)
- Jérémy DERUSSÉ (jderusse) - Jérémy DERUSSÉ (jderusse)
- Jeremy Mikola (jmikola)
- Jean-François Simon (jfsimon) - Jean-François Simon (jfsimon)
- Benjamin Eberlei (beberlei) - Benjamin Eberlei (beberlei)
- Igor Wiedler (igorw) - Igor Wiedler (igorw)
@ -50,9 +50,9 @@ Symfony is the result of the work of many people who made the code better
- Lynn van der Berg (kjarli) - Lynn van der Berg (kjarli)
- Diego Saint Esteben (dosten) - Diego Saint Esteben (dosten)
- Matthias Pigulla (mpdude) - Matthias Pigulla (mpdude)
- Pierre du Plessis (pierredup)
- Alexandre Salomé (alexandresalome) - Alexandre Salomé (alexandresalome)
- William Durand (couac) - William Durand (couac)
- Pierre du Plessis (pierredup)
- ornicar - ornicar
- Dany Maillard (maidmaid) - Dany Maillard (maidmaid)
- Francis Besset (francisbesset) - Francis Besset (francisbesset)
@ -69,10 +69,10 @@ Symfony is the result of the work of many people who made the code better
- Gabriel Ostrolucký (gadelat) - Gabriel Ostrolucký (gadelat)
- Miha Vrhovnik - Miha Vrhovnik
- David Maicher (dmaicher) - David Maicher (dmaicher)
- Diego Saint Esteben (dii3g0)
- Gábor Egyed (1ed) - Gábor Egyed (1ed)
- Titouan Galopin (tgalopin) - Diego Saint Esteben (dii3g0)
- Jan Schädlich (jschaedl) - Jan Schädlich (jschaedl)
- Titouan Galopin (tgalopin)
- Konstantin Kudryashov (everzet) - Konstantin Kudryashov (everzet)
- Bilal Amarni (bamarni) - Bilal Amarni (bamarni)
- Mathieu Piot (mpiot) - Mathieu Piot (mpiot)
@ -110,6 +110,7 @@ Symfony is the result of the work of many people who made the code better
- Baptiste Clavié (talus) - Baptiste Clavié (talus)
- Michal Piotrowski (eventhorizon) - Michal Piotrowski (eventhorizon)
- Tim Nagel (merk) - Tim Nagel (merk)
- Sebastiaan Stok (sstok)
- Chris Wilkinson (thewilkybarkid) - Chris Wilkinson (thewilkybarkid)
- Brice BERNARD (brikou) - Brice BERNARD (brikou)
- marc.weistroff - marc.weistroff
@ -119,7 +120,6 @@ Symfony is the result of the work of many people who made the code better
- lenar - lenar
- Alexander Schwenn (xelaris) - Alexander Schwenn (xelaris)
- Włodzimierz Gajda (gajdaw) - Włodzimierz Gajda (gajdaw)
- Sebastiaan Stok (sstok)
- Adrien Brault (adrienbrault) - Adrien Brault (adrienbrault)
- Jacob Dreesen (jdreesen) - Jacob Dreesen (jdreesen)
- Florian Voutzinos (florianv) - Florian Voutzinos (florianv)
@ -139,18 +139,18 @@ Symfony is the result of the work of many people who made the code better
- Przemysław Bogusz (przemyslaw-bogusz) - Przemysław Bogusz (przemyslaw-bogusz)
- Eric GELOEN (gelo) - Eric GELOEN (gelo)
- Lars Strojny (lstrojny) - Lars Strojny (lstrojny)
- Massimiliano Arione (garak)
- Jannik Zschiesche (apfelbox) - Jannik Zschiesche (apfelbox)
- Robert Schönthal (digitalkaoz) - Robert Schönthal (digitalkaoz)
- Gregor Harlan (gharlan) - Gregor Harlan (gharlan)
- Florian Lonqueu-Brochard (florianlb) - Florian Lonqueu-Brochard (florianlb)
- Alexander Schranz (alexander-schranz)
- Gabriel Caruso (carusogabriel) - Gabriel Caruso (carusogabriel)
- Stefano Sala (stefano.sala) - Stefano Sala (stefano.sala)
- Evgeniy (ewgraf) - Evgeniy (ewgraf)
- Massimiliano Arione (garak)
- Julien Falque (julienfalque) - Julien Falque (julienfalque)
- Vincent AUBERT (vincent) - Vincent AUBERT (vincent)
- Juti Noppornpitak (shiroyuki) - Juti Noppornpitak (shiroyuki)
- Alexander Schranz (alexander-schranz)
- Anthony MARTIN (xurudragon) - Anthony MARTIN (xurudragon)
- Tigran Azatyan (tigranazatyan) - Tigran Azatyan (tigranazatyan)
- Sebastian Hörl (blogsh) - Sebastian Hörl (blogsh)
@ -176,6 +176,7 @@ Symfony is the result of the work of many people who made the code better
- Richard van Laak (rvanlaak) - Richard van Laak (rvanlaak)
- Richard Shank (iampersistent) - Richard Shank (iampersistent)
- Thomas Rabaix (rande) - Thomas Rabaix (rande)
- Ahmed TAILOULOUTE (ahmedtai)
- Vincent Touzet (vincenttouzet) - Vincent Touzet (vincenttouzet)
- jeremyFreeAgent (jeremyfreeagent) - jeremyFreeAgent (jeremyfreeagent)
- Rouven Weßling (realityking) - Rouven Weßling (realityking)
@ -198,6 +199,7 @@ Symfony is the result of the work of many people who made the code better
- James Halsall (jaitsu) - James Halsall (jaitsu)
- Matthieu Napoli (mnapoli) - Matthieu Napoli (mnapoli)
- Florent Mata (fmata) - Florent Mata (fmata)
- Antoine Makdessi (amakdessi)
- Warnar Boekkooi (boekkooi) - Warnar Boekkooi (boekkooi)
- Dmitrii Chekaliuk (lazyhammer) - Dmitrii Chekaliuk (lazyhammer)
- Clément JOBEILI (dator) - Clément JOBEILI (dator)
@ -213,15 +215,18 @@ Symfony is the result of the work of many people who made the code better
- Dennis Benkert (denderello) - Dennis Benkert (denderello)
- DQNEO - DQNEO
- Andre Rømcke (andrerom) - Andre Rømcke (andrerom)
- Saif (╯°□°)╯ (azjezz)
- mcfedr (mcfedr) - mcfedr (mcfedr)
- Gary PEGEOT (gary-p) - Gary PEGEOT (gary-p)
- Ruben Gonzalez (rubenrua) - Ruben Gonzalez (rubenrua)
- Benjamin Dulau (dbenjamin) - Benjamin Dulau (dbenjamin)
- Jan Rosier (rosier)
- Andreas Braun - Andreas Braun
- Mathieu Lemoine (lemoinem) - Mathieu Lemoine (lemoinem)
- Christian Schmidt - Christian Schmidt
- Andreas Hucks (meandmymonkey) - Andreas Hucks (meandmymonkey)
- Tom Van Looy (tvlooy) - Tom Van Looy (tvlooy)
- Guillaume Pédelagrabe
- Noel Guilbert (noel) - Noel Guilbert (noel)
- Anthony GRASSIOT (antograssiot) - Anthony GRASSIOT (antograssiot)
- Stadly - Stadly
@ -233,7 +238,7 @@ Symfony is the result of the work of many people who made the code better
- Nikolay Labinskiy (e-moe) - Nikolay Labinskiy (e-moe)
- Martin Schuhfuß (usefulthink) - Martin Schuhfuß (usefulthink)
- apetitpa - apetitpa
- Antoine Makdessi (amakdessi) - Maxime Helias (maxhelias)
- Matthieu Bontemps (mbontemps) - Matthieu Bontemps (mbontemps)
- apetitpa - apetitpa
- Pierre Minnieur (pminnieur) - Pierre Minnieur (pminnieur)
@ -243,14 +248,13 @@ Symfony is the result of the work of many people who made the code better
- Laurent VOULLEMIER (lvo) - Laurent VOULLEMIER (lvo)
- Michael Lee (zerustech) - Michael Lee (zerustech)
- Matthieu Auger (matthieuauger) - Matthieu Auger (matthieuauger)
- Ahmed TAILOULOUTE (ahmedtai) - Mathias Arlaud (mtarld)
- Leszek Prabucki (l3l0) - Leszek Prabucki (l3l0)
- Fabien Bourigault (fbourigault) - Fabien Bourigault (fbourigault)
- François Zaninotto (fzaninotto) - François Zaninotto (fzaninotto)
- Dustin Whittle (dustinwhittle) - Dustin Whittle (dustinwhittle)
- jeff - jeff
- John Kary (johnkary) - John Kary (johnkary)
- Jan Rosier (rosier)
- Justin Hileman (bobthecow) - Justin Hileman (bobthecow)
- Blanchon Vincent (blanchonvincent) - Blanchon Vincent (blanchonvincent)
- Michele Orselli (orso) - Michele Orselli (orso)
@ -270,7 +274,6 @@ Symfony is the result of the work of many people who made the code better
- Marcel Beerta (mazen) - Marcel Beerta (mazen)
- Christopher Hertel (chertel) - Christopher Hertel (chertel)
- Ruud Kamphuis (ruudk) - Ruud Kamphuis (ruudk)
- Maxime Helias (maxhelias)
- Pavel Batanov (scaytrase) - Pavel Batanov (scaytrase)
- Mantis Development - Mantis Development
- David Prévot - David Prévot
@ -283,7 +286,6 @@ Symfony is the result of the work of many people who made the code better
- Lorenz Schori - Lorenz Schori
- Sébastien Lavoie (lavoiesl) - Sébastien Lavoie (lavoiesl)
- Dariusz - Dariusz
- Saif (╯°□°)╯ (azjezz)
- Dmitrii Poddubnyi (karser) - Dmitrii Poddubnyi (karser)
- Michael Babker (mbabker) - Michael Babker (mbabker)
- Francois Zaninotto - Francois Zaninotto
@ -307,7 +309,6 @@ Symfony is the result of the work of many people who made the code better
- Arjen Brouwer (arjenjb) - Arjen Brouwer (arjenjb)
- Katsuhiro OGAWA - Katsuhiro OGAWA
- Patrick McDougle (patrick-mcdougle) - Patrick McDougle (patrick-mcdougle)
- Guillaume Pédelagrabe
- Alif Rachmawadi - Alif Rachmawadi
- Anton Chernikov (anton_ch1989) - Anton Chernikov (anton_ch1989)
- Kristen Gilden (kgilden) - Kristen Gilden (kgilden)
@ -336,9 +337,9 @@ Symfony is the result of the work of many people who made the code better
- Jeroen Spee (jeroens) - Jeroen Spee (jeroens)
- Nikita Konstantinov - Nikita Konstantinov
- Wodor Wodorski - Wodor Wodorski
- Olivier Dolbeau (odolbeau)
- Thomas Lallement (raziel057) - Thomas Lallement (raziel057)
- Colin O'Dell (colinodell) - Colin O'Dell (colinodell)
- Mathias Arlaud (mtarld)
- Giorgio Premi - Giorgio Premi
- renanbr - renanbr
- Alex Rock (pierstoval) - Alex Rock (pierstoval)
@ -364,6 +365,7 @@ Symfony is the result of the work of many people who made the code better
- Vilius Grigaliūnas - Vilius Grigaliūnas
- David Badura (davidbadura) - David Badura (davidbadura)
- Chad Sikorra (chadsikorra) - Chad Sikorra (chadsikorra)
- Alan Poulain (alanpoulain)
- Chris Smith (cs278) - Chris Smith (cs278)
- Thomas Bisignani (toma) - Thomas Bisignani (toma)
- Florian Klein (docteurklein) - Florian Klein (docteurklein)
@ -413,7 +415,6 @@ Symfony is the result of the work of many people who made the code better
- Thomas Royer (cydonia7) - Thomas Royer (cydonia7)
- Nicolas LEFEVRE (nicoweb) - Nicolas LEFEVRE (nicoweb)
- alquerci - alquerci
- Olivier Dolbeau (odolbeau)
- Oleg Andreyev - Oleg Andreyev
- Mateusz Sip (mateusz_sip) - Mateusz Sip (mateusz_sip)
- Francesco Levorato - Francesco Levorato
@ -426,6 +427,7 @@ Symfony is the result of the work of many people who made the code better
- Tomasz Kowalczyk (thunderer) - Tomasz Kowalczyk (thunderer)
- Artur Eshenbrener - Artur Eshenbrener
- Timo Bakx (timobakx) - Timo Bakx (timobakx)
- Antonio Pauletich (x-coder264)
- Thomas Perez (scullwm) - Thomas Perez (scullwm)
- Felix Labrecque - Felix Labrecque
- Yaroslav Kiliba - Yaroslav Kiliba
@ -443,7 +445,6 @@ Symfony is the result of the work of many people who made the code better
- Eduardo Gulias (egulias) - Eduardo Gulias (egulias)
- giulio de donato (liuggio) - giulio de donato (liuggio)
- ShinDarth - ShinDarth
- Alan Poulain
- Stéphane PY (steph_py) - Stéphane PY (steph_py)
- Philipp Kräutli (pkraeutli) - Philipp Kräutli (pkraeutli)
- Grzegorz (Greg) Zdanowski (kiler129) - Grzegorz (Greg) Zdanowski (kiler129)
@ -540,10 +541,10 @@ Symfony is the result of the work of many people who made the code better
- Martijn Cuppens - Martijn Cuppens
- Vlad Gregurco (vgregurco) - Vlad Gregurco (vgregurco)
- Boris Vujicic (boris.vujicic) - Boris Vujicic (boris.vujicic)
- Artem Lopata
- Chris Sedlmayr (catchamonkey) - Chris Sedlmayr (catchamonkey)
- Kamil Kokot (pamil) - Kamil Kokot (pamil)
- Seb Koelen - Seb Koelen
- Antonio Pauletich (x-coder264)
- Christoph Mewes (xrstf) - Christoph Mewes (xrstf)
- Vitaliy Tverdokhlib (vitaliytv) - Vitaliy Tverdokhlib (vitaliytv)
- Ariel Ferrandini (aferrandini) - Ariel Ferrandini (aferrandini)
@ -553,14 +554,17 @@ Symfony is the result of the work of many people who made the code better
- Jonas Flodén (flojon) - Jonas Flodén (flojon)
- Tobias Weichart - Tobias Weichart
- Gonzalo Vilaseca (gonzalovilaseca) - Gonzalo Vilaseca (gonzalovilaseca)
- Daniel STANCU
- Tarmo Leppänen (tarlepp) - Tarmo Leppänen (tarlepp)
- Marcin Sikoń (marphi) - Marcin Sikoń (marphi)
- Dominik Zogg (dominik.zogg) - Dominik Zogg (dominik.zogg)
- Marek Pietrzak - Marek Pietrzak
- Luc Vieillescazes (iamluc) - Luc Vieillescazes (iamluc)
- franek (franek) - franek (franek)
- soyuka
- Raulnet - Raulnet
- Christian Wahler - Christian Wahler
- Giso Stallenberg (gisostallenberg)
- Gintautas Miselis - Gintautas Miselis
- Rob Bast - Rob Bast
- Roberto Espinoza (respinoza) - Roberto Espinoza (respinoza)
@ -599,6 +603,7 @@ Symfony is the result of the work of many people who made the code better
- Philipp Rieber (bicpi) - Philipp Rieber (bicpi)
- Manuel de Ruiter (manuel) - Manuel de Ruiter (manuel)
- Nathanael Noblet (gnat) - Nathanael Noblet (gnat)
- Dimitri Gritsajuk (ottaviano)
- nikos.sotiropoulos - nikos.sotiropoulos
- Eduardo Oliveira (entering) - Eduardo Oliveira (entering)
- Ilya Antipenko (aivus) - Ilya Antipenko (aivus)
@ -744,6 +749,7 @@ Symfony is the result of the work of many people who made the code better
- Benjamin Cremer (bcremer) - Benjamin Cremer (bcremer)
- Javier López (loalf) - Javier López (loalf)
- Reinier Kip - Reinier Kip
- Jérôme Tamarelle (jtamarelle-prismamedia)
- Geoffrey Brier (geoffrey-brier) - Geoffrey Brier (geoffrey-brier)
- Alexandre Parent - Alexandre Parent
- Vladimir Tsykun - Vladimir Tsykun
@ -778,7 +784,6 @@ Symfony is the result of the work of many people who made the code better
- Miquel Rodríguez Telep (mrtorrent) - Miquel Rodríguez Telep (mrtorrent)
- Sergey Kolodyazhnyy (skolodyazhnyy) - Sergey Kolodyazhnyy (skolodyazhnyy)
- umpirski - umpirski
- Artem Lopata
- M. Vondano - M. Vondano
- Quentin de Longraye (quentinus95) - Quentin de Longraye (quentinus95)
- Chris Heng (gigablah) - Chris Heng (gigablah)
@ -786,10 +791,10 @@ Symfony is the result of the work of many people who made the code better
- Richard Bradley - Richard Bradley
- Ulumuddin Yunus (joenoez) - Ulumuddin Yunus (joenoez)
- rtek - rtek
- Ivan Grigoriev
- Johann Saunier (prophet777) - Johann Saunier (prophet777)
- Sergey (upyx) - Sergey (upyx)
- Andreas Erhard - Andreas Erhard
- Giso Stallenberg (gisostallenberg)
- Michael Devery (mickadoo) - Michael Devery (mickadoo)
- Antoine Corcy - Antoine Corcy
- Ahmed Ashraf (ahmedash95) - Ahmed Ashraf (ahmedash95)
@ -810,6 +815,7 @@ Symfony is the result of the work of many people who made the code better
- Cameron Porter - Cameron Porter
- Hossein Bukhamsin - Hossein Bukhamsin
- Oliver Hoff - Oliver Hoff
- William Arslett
- Christian Sciberras (uuf6429) - Christian Sciberras (uuf6429)
- Disparity - Disparity
- origaminal - origaminal
@ -856,7 +862,6 @@ Symfony is the result of the work of many people who made the code better
- Markus Fasselt (digilist) - Markus Fasselt (digilist)
- Julien DIDIER (juliendidier) - Julien DIDIER (juliendidier)
- Dominik Ritter (dritter) - Dominik Ritter (dritter)
- Dimitri Gritsajuk (ottaviano)
- Sebastian Grodzicki (sgrodzicki) - Sebastian Grodzicki (sgrodzicki)
- Mohamed Gamal - Mohamed Gamal
- Jeroen van den Enden (stoefke) - Jeroen van den Enden (stoefke)
@ -871,6 +876,7 @@ Symfony is the result of the work of many people who made the code better
- Yuen-Chi Lian - Yuen-Chi Lian
- Tarjei Huse (tarjei) - Tarjei Huse (tarjei)
- Besnik Br - Besnik Br
- Axel Guckelsberger (guite)
- Jose Gonzalez - Jose Gonzalez
- Jonathan (jls-esokia) - Jonathan (jls-esokia)
- Oleksii Zhurbytskyi - Oleksii Zhurbytskyi
@ -881,12 +887,14 @@ Symfony is the result of the work of many people who made the code better
- Jakub Kulhan (jakubkulhan) - Jakub Kulhan (jakubkulhan)
- Shaharia Azam - Shaharia Azam
- avorobiev - avorobiev
- stoccc
- Grégoire Penverne (gpenverne) - Grégoire Penverne (gpenverne)
- Venu - Venu
- Lars Vierbergen - Lars Vierbergen
- Jonatan Männchen - Jonatan Männchen
- Dennis Hotson - Dennis Hotson
- Andrew Tchircoff (andrewtch) - Andrew Tchircoff (andrewtch)
- Ahmed Raafat
- michaelwilliams - michaelwilliams
- Martin Kirilov - Martin Kirilov
- 1emming - 1emming
@ -894,6 +902,7 @@ Symfony is the result of the work of many people who made the code better
- Tri Pham (phamuyentri) - Tri Pham (phamuyentri)
- Jordan Deitch - Jordan Deitch
- Casper Valdemar Poulsen - Casper Valdemar Poulsen
- Laurent Masforné (heisenberg)
- Josiah (josiah) - Josiah (josiah)
- Guillaume Verstraete (versgui) - Guillaume Verstraete (versgui)
- Greg ORIOL - Greg ORIOL
@ -961,10 +970,8 @@ Symfony is the result of the work of many people who made the code better
- Laurent Bassin (lbassin) - Laurent Bassin (lbassin)
- andrey1s - andrey1s
- Abhoryo - Abhoryo
- Daniel STANCU
- Fabian Vogler (fabian) - Fabian Vogler (fabian)
- Korvin Szanto - Korvin Szanto
- soyuka
- Stéphan Kochen - Stéphan Kochen
- Arjan Keeman - Arjan Keeman
- Alaattin Kahramanlar (alaattin) - Alaattin Kahramanlar (alaattin)
@ -1133,6 +1140,7 @@ Symfony is the result of the work of many people who made the code better
- Nicolas Le Goff (nlegoff) - Nicolas Le Goff (nlegoff)
- Ben Oman - Ben Oman
- Chris de Kok - Chris de Kok
- Eduard Bulava (nonanerz)
- Lorenzo Millucci - Lorenzo Millucci
- Andreas Kleemann - Andreas Kleemann
- Manuele Menozzi - Manuele Menozzi
@ -1150,6 +1158,7 @@ Symfony is the result of the work of many people who made the code better
- hamza - hamza
- dantleech - dantleech
- Bastien DURAND (deamon) - Bastien DURAND (deamon)
- Kajetan Kołtuniak (kajtii)
- Sander Goossens (sandergo90) - Sander Goossens (sandergo90)
- Rudy Onfroy - Rudy Onfroy
- Tero Alén (tero) - Tero Alén (tero)
@ -1237,7 +1246,6 @@ Symfony is the result of the work of many people who made the code better
- Benjamin Paap (benjaminpaap) - Benjamin Paap (benjaminpaap)
- Claus Due (namelesscoder) - Claus Due (namelesscoder)
- Christian - Christian
- William Arslett
- Denis Golubovskiy (bukashk0zzz) - Denis Golubovskiy (bukashk0zzz)
- Sergii Smertin (nfx) - Sergii Smertin (nfx)
- Mikkel Paulson - Mikkel Paulson
@ -1246,6 +1254,7 @@ Symfony is the result of the work of many people who made the code better
- Marc Duboc (icemad) - Marc Duboc (icemad)
- Matthias Krauser (mkrauser) - Matthias Krauser (mkrauser)
- Martynas Narbutas - Martynas Narbutas
- Nilmar Sanchez Muguercia
- Toon Verwerft (veewee) - Toon Verwerft (veewee)
- Bailey Parker - Bailey Parker
- Eddie Jaoude - Eddie Jaoude
@ -1289,6 +1298,7 @@ Symfony is the result of the work of many people who made the code better
- Stephen Clouse - Stephen Clouse
- e-ivanov - e-ivanov
- Michał (bambucha15) - Michał (bambucha15)
- Benjamin Dos Santos
- Einenlum - Einenlum
- Jérémy Jarrié (gagnar) - Jérémy Jarrié (gagnar)
- Jochen Bayer (jocl) - Jochen Bayer (jocl)
@ -1344,6 +1354,7 @@ Symfony is the result of the work of many people who made the code better
- Klaus Purer - Klaus Purer
- arnaud (arnooo999) - arnaud (arnooo999)
- Gilles Doge (gido) - Gilles Doge (gido)
- Oscar Esteve (oesteve)
- abulford - abulford
- Philipp Kretzschmar - Philipp Kretzschmar
- antograssiot - antograssiot
@ -1367,7 +1378,6 @@ Symfony is the result of the work of many people who made the code better
- Derek Lambert - Derek Lambert
- MightyBranch - MightyBranch
- Kacper Gunia (cakper) - Kacper Gunia (cakper)
- Jérôme Tamarelle (jtamarelle-prismamedia)
- Peter Thompson (petert82) - Peter Thompson (petert82)
- error56 - error56
- Felicitus - Felicitus
@ -1392,6 +1402,7 @@ Symfony is the result of the work of many people who made the code better
- Nyro (nyro) - Nyro (nyro)
- Marco - Marco
- Marc Torres - Marc Torres
- Mark Spink
- Alberto Aldegheri - Alberto Aldegheri
- Dmitri Petmanson - Dmitri Petmanson
- heccjj - heccjj
@ -1412,7 +1423,6 @@ Symfony is the result of the work of many people who made the code better
- David Négrier (moufmouf) - David Négrier (moufmouf)
- Quique Porta (quiqueporta) - Quique Porta (quiqueporta)
- mohammadreza honarkhah - mohammadreza honarkhah
- stoccc
- Andrea Quintino (dirk39) - Andrea Quintino (dirk39)
- Tomasz Szymczyk (karion) - Tomasz Szymczyk (karion)
- Alex Vasilchenko - Alex Vasilchenko
@ -1468,7 +1478,6 @@ Symfony is the result of the work of many people who made the code better
- Walter Dal Mut (wdalmut) - Walter Dal Mut (wdalmut)
- abluchet - abluchet
- Ruud Arentsen - Ruud Arentsen
- Ahmed Raafat
- Harald Tollefsen - Harald Tollefsen
- Matthieu - Matthieu
- Albin Kerouaton - Albin Kerouaton
@ -1504,7 +1513,6 @@ Symfony is the result of the work of many people who made the code better
- Antal Áron (antalaron) - Antal Áron (antalaron)
- Vašek Purchart (vasek-purchart) - Vašek Purchart (vasek-purchart)
- Janusz Jabłoński (yanoosh) - Janusz Jabłoński (yanoosh)
- Ivan Grigoriev
- Fleuv - Fleuv
- Sandro Hopf - Sandro Hopf
- Łukasz Makuch - Łukasz Makuch
@ -1522,6 +1530,7 @@ Symfony is the result of the work of many people who made the code better
- Philip Frank - Philip Frank
- David Brooks - David Brooks
- Lance McNearney - Lance McNearney
- Serhiy Lunak (slunak)
- Giorgio Premi - Giorgio Premi
- Aurélien Fontaine - Aurélien Fontaine
- ncou - ncou
@ -1531,6 +1540,7 @@ Symfony is the result of the work of many people who made the code better
- Matt Daum (daum) - Matt Daum (daum)
- Alberto Pirovano (geezmo) - Alberto Pirovano (geezmo)
- Pete Mitchell (peterjmit) - Pete Mitchell (peterjmit)
- phuc vo (phucwan)
- Tom Corrigan (tomcorrigan) - Tom Corrigan (tomcorrigan)
- Luis Galeas - Luis Galeas
- Bogdan Scordaliu - Bogdan Scordaliu
@ -1543,7 +1553,6 @@ Symfony is the result of the work of many people who made the code better
- WedgeSama - WedgeSama
- Felds Liscia - Felds Liscia
- Chihiro Adachi (chihiro-adachi) - Chihiro Adachi (chihiro-adachi)
- Axel Guckelsberger (guite)
- Raphaëll Roussel - Raphaëll Roussel
- Tadcka - Tadcka
- Beth Binkovitz - Beth Binkovitz
@ -1651,6 +1660,7 @@ Symfony is the result of the work of many people who made the code better
- Flavian (2much) - Flavian (2much)
- Gautier Deuette - Gautier Deuette
- mike - mike
- tadas
- Kirk Madera - Kirk Madera
- Keith Maika - Keith Maika
- Mephistofeles - Mephistofeles
@ -1834,6 +1844,7 @@ Symfony is the result of the work of many people who made the code better
- alefranz - alefranz
- David Barratt - David Barratt
- Andrea Giannantonio - Andrea Giannantonio
- Dries Vints
- Pavel.Batanov - Pavel.Batanov
- avi123 - avi123
- Pavel Prischepa - Pavel Prischepa
@ -1900,6 +1911,7 @@ Symfony is the result of the work of many people who made the code better
- Yannick Warnier (ywarnier) - Yannick Warnier (ywarnier)
- Kevin Decherf - Kevin Decherf
- Jason Woods - Jason Woods
- Christian Weiske
- Maria Grazia Patteri - Maria Grazia Patteri
- klemens - klemens
- dened - dened
@ -2149,6 +2161,7 @@ Symfony is the result of the work of many people who made the code better
- Evgeniy Tetenchuk - Evgeniy Tetenchuk
- Sjoerd Adema - Sjoerd Adema
- Shrey Puranik - Shrey Puranik
- Evgeniy Koval
- Lars Moelleken - Lars Moelleken
- dasmfm - dasmfm
- Mathias Geat - Mathias Geat
@ -2208,6 +2221,7 @@ Symfony is the result of the work of many people who made the code better
- Niklas Keller - Niklas Keller
- Andras Debreczeni - Andras Debreczeni
- Vladimir Sazhin - Vladimir Sazhin
- Michel Bardelmeijer
- Tomas Kmieliauskas - Tomas Kmieliauskas
- Billie Thompson - Billie Thompson
- lol768 - lol768
@ -2241,6 +2255,7 @@ Symfony is the result of the work of many people who made the code better
- Michael Schneider - Michael Schneider
- Cédric Bertolini - Cédric Bertolini
- n-aleha - n-aleha
- Talha Zekeriya Durmuş
- Anatol Belski - Anatol Belski
- Anderson Müller - Anderson Müller
- Şəhriyar İmanov - Şəhriyar İmanov
@ -2268,6 +2283,7 @@ Symfony is the result of the work of many people who made the code better
- Neophy7e - Neophy7e
- bokonet - bokonet
- Arrilot - Arrilot
- ampaze
- Markus Staab - Markus Staab
- Pierre-Louis LAUNAY - Pierre-Louis LAUNAY
- djama - djama
@ -2417,6 +2433,7 @@ Symfony is the result of the work of many people who made the code better
- Michal Čihař (mcihar) - Michal Čihař (mcihar)
- Matt Drollette (mdrollette) - Matt Drollette (mdrollette)
- Adam Monsen (meonkeys) - Adam Monsen (meonkeys)
- Mike Milano (mmilano)
- diego aguiar (mollokhan) - diego aguiar (mollokhan)
- Hugo Monteiro (monteiro) - Hugo Monteiro (monteiro)
- Ala Eddine Khefifi (nayzo) - Ala Eddine Khefifi (nayzo)

View File

@ -48,7 +48,12 @@ class SymfonyTestsListenerTrait
*/ */
public function __construct(array $mockedNamespaces = []) public function __construct(array $mockedNamespaces = [])
{ {
Blacklist::$blacklistedClassNames['\Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerTrait'] = 2; if (method_exists(Blacklist::class, 'addDirectory')) {
(new BlackList())->getBlacklistedDirectories();
Blacklist::addDirectory(\dirname((new \ReflectionClass(__CLASS__))->getFileName(), 2));
} else {
Blacklist::$blacklistedClassNames[__CLASS__] = 2;
}
$enableDebugClassLoader = class_exists(DebugClassLoader::class) || class_exists(LegacyDebugClassLoader::class); $enableDebugClassLoader = class_exists(DebugClassLoader::class) || class_exists(LegacyDebugClassLoader::class);

View File

@ -215,9 +215,10 @@ require PHPUNIT_COMPOSER_INSTALL;
if (!class_exists('SymfonyBlacklistPhpunit', false)) { if (!class_exists('SymfonyBlacklistPhpunit', false)) {
class SymfonyBlacklistPhpunit {} class SymfonyBlacklistPhpunit {}
} }
if (class_exists('PHPUnit_Util_Blacklist')) { if (method_exists('PHPUnit\Util\Blacklist', 'addDirectory')) {
PHPUnit_Util_Blacklist::$blacklistedClassNames['SymfonyBlacklistPhpunit'] = 1; (new PHPUnit\Util\BlackList())->getBlacklistedDirectories();
PHPUnit_Util_Blacklist::$blacklistedClassNames['SymfonyBlacklistSimplePhpunit'] = 1; PHPUnit\Util\Blacklist::addDirectory(\dirname((new \ReflectionClass('SymfonyBlacklistPhpunit'))->getFileName()));
PHPUnit\Util\Blacklist::addDirectory(\dirname((new \ReflectionClass('SymfonyBlacklistSimplePhpunit'))->getFileName()));
} else { } else {
PHPUnit\Util\Blacklist::$blacklistedClassNames['SymfonyBlacklistPhpunit'] = 1; PHPUnit\Util\Blacklist::$blacklistedClassNames['SymfonyBlacklistPhpunit'] = 1;
PHPUnit\Util\Blacklist::$blacklistedClassNames['SymfonyBlacklistSimplePhpunit'] = 1; PHPUnit\Util\Blacklist::$blacklistedClassNames['SymfonyBlacklistSimplePhpunit'] = 1;

View File

@ -24,7 +24,7 @@
"symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
}, },
"conflict": { "conflict": {
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0" "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2"
}, },
"autoload": { "autoload": {
"files": [ "bootstrap.php" ], "files": [ "bootstrap.php" ],

View File

@ -5,18 +5,18 @@
{% set status_color = (collector.memory / 1024 / 1024) > 50 ? 'yellow' : '' %} {% set status_color = (collector.memory / 1024 / 1024) > 50 ? 'yellow' : '' %}
{{ include('@WebProfiler/Icon/memory.svg') }} {{ include('@WebProfiler/Icon/memory.svg') }}
<span class="sf-toolbar-value">{{ '%.1f'|format(collector.memory / 1024 / 1024) }}</span> <span class="sf-toolbar-value">{{ '%.1f'|format(collector.memory / 1024 / 1024) }}</span>
<span class="sf-toolbar-label">MB</span> <span class="sf-toolbar-label">MiB</span>
{% endset %} {% endset %}
{% set text %} {% set text %}
<div class="sf-toolbar-info-piece"> <div class="sf-toolbar-info-piece">
<b>Peak memory usage</b> <b>Peak memory usage</b>
<span>{{ '%.1f'|format(collector.memory / 1024 / 1024) }} MB</span> <span>{{ '%.1f'|format(collector.memory / 1024 / 1024) }} MiB</span>
</div> </div>
<div class="sf-toolbar-info-piece"> <div class="sf-toolbar-info-piece">
<b>PHP memory limit</b> <b>PHP memory limit</b>
<span>{{ collector.memoryLimit == -1 ? 'Unlimited' : '%.0f MB'|format(collector.memoryLimit / 1024 / 1024) }}</span> <span>{{ collector.memoryLimit == -1 ? 'Unlimited' : '%.0f MiB'|format(collector.memoryLimit / 1024 / 1024) }}</span>
</div> </div>
{% endset %} {% endset %}

View File

@ -52,7 +52,7 @@
{% if profile.collectors.memory %} {% if profile.collectors.memory %}
<div class="metric"> <div class="metric">
<span class="value">{{ '%.2f'|format(profile.collectors.memory.memory / 1024 / 1024) }} <span class="unit">MB</span></span> <span class="value">{{ '%.2f'|format(profile.collectors.memory.memory / 1024 / 1024) }} <span class="unit">MiB</span></span>
<span class="label">Peak memory usage</span> <span class="label">Peak memory usage</span>
</div> </div>
{% endif %} {% endif %}

View File

@ -13,7 +13,6 @@ namespace Symfony\Component\Cache\Adapter;
use Psr\Log\LoggerAwareInterface; use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Symfony\Component\Cache\CacheItem; use Symfony\Component\Cache\CacheItem;
use Symfony\Component\Cache\Exception\InvalidArgumentException; use Symfony\Component\Cache\Exception\InvalidArgumentException;
use Symfony\Component\Cache\ResettableInterface; use Symfony\Component\Cache\ResettableInterface;
@ -117,10 +116,12 @@ abstract class AbstractAdapter implements AdapterInterface, CacheInterface, Logg
return $opcache; return $opcache;
} }
if (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && !filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN)) {
return $opcache;
}
$apcu = new ApcuAdapter($namespace, (int) $defaultLifetime / 5, $version); $apcu = new ApcuAdapter($namespace, (int) $defaultLifetime / 5, $version);
if ('cli' === \PHP_SAPI && !filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN)) { if (null !== $logger) {
$apcu->setLogger(new NullLogger());
} elseif (null !== $logger) {
$apcu->setLogger($logger); $apcu->setLogger($logger);
} }

View File

@ -51,6 +51,9 @@ class ChainAdapter implements AdapterInterface, CacheInterface, PruneableInterfa
if (!$adapter instanceof CacheItemPoolInterface) { if (!$adapter instanceof CacheItemPoolInterface) {
throw new InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.', \get_class($adapter), CacheItemPoolInterface::class)); throw new InvalidArgumentException(sprintf('The class "%s" does not implement the "%s" interface.', \get_class($adapter), CacheItemPoolInterface::class));
} }
if (\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && $adapter instanceof ApcuAdapter && !filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN)) {
continue; // skip putting APCu in the chain when the backend is disabled
}
if ($adapter instanceof AdapterInterface) { if ($adapter instanceof AdapterInterface) {
$this->adapters[] = $adapter; $this->adapters[] = $adapter;

View File

@ -218,6 +218,14 @@ class DateTimeType extends AbstractType
// * the html5 is set to true // * the html5 is set to true
if ($options['html5'] && 'single_text' === $options['widget'] && self::HTML5_FORMAT === $options['format']) { if ($options['html5'] && 'single_text' === $options['widget'] && self::HTML5_FORMAT === $options['format']) {
$view->vars['type'] = 'datetime-local'; $view->vars['type'] = 'datetime-local';
// we need to force the browser to display the seconds by
// adding the HTML attribute step if not already defined.
// Otherwise the browser will not display and so not send the seconds
// therefore the value will always be considered as invalid.
if ($options['with_seconds'] && !isset($view->vars['attr']['step'])) {
$view->vars['attr']['step'] = 1;
}
} }
} }

View File

@ -495,6 +495,37 @@ class DateTimeTypeTest extends BaseTypeTest
$this->assertArrayNotHasKey('type', $view->vars); $this->assertArrayNotHasKey('type', $view->vars);
} }
public function testSingleTextWidgetWithSecondsShouldHaveRightStepAttribute()
{
$view = $this->factory
->create(static::TESTED_TYPE, null, [
'widget' => 'single_text',
'with_seconds' => true,
])
->createView()
;
$this->assertArrayHasKey('step', $view->vars['attr']);
$this->assertEquals(1, $view->vars['attr']['step']);
}
public function testSingleTextWidgetWithSecondsShouldNotOverrideStepAttribute()
{
$view = $this->factory
->create(static::TESTED_TYPE, null, [
'widget' => 'single_text',
'with_seconds' => true,
'attr' => [
'step' => 30,
],
])
->createView()
;
$this->assertArrayHasKey('step', $view->vars['attr']);
$this->assertEquals(30, $view->vars['attr']['step']);
}
public function testSingleTextWidgetWithCustomNonHtml5Format() public function testSingleTextWidgetWithCustomNonHtml5Format()
{ {
$form = $this->factory->create(static::TESTED_TYPE, new \DateTime('2019-02-13 19:12:13'), [ $form = $this->factory->create(static::TESTED_TYPE, new \DateTime('2019-02-13 19:12:13'), [

View File

@ -13,12 +13,98 @@ namespace Symfony\Component\Validator\Tests\Violation;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Symfony\Component\Translation\IdentityTranslator; use Symfony\Component\Translation\IdentityTranslator;
use Symfony\Component\Validator\Constraints\Valid;
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Validator\ConstraintViolationList; use Symfony\Component\Validator\ConstraintViolationList;
use Symfony\Component\Validator\Test\ForwardCompatTestTrait;
use Symfony\Component\Validator\Tests\Fixtures\ConstraintA; use Symfony\Component\Validator\Tests\Fixtures\ConstraintA;
use Symfony\Component\Validator\Violation\ConstraintViolationBuilder; use Symfony\Component\Validator\Violation\ConstraintViolationBuilder;
class ConstraintViolationBuilderTest extends TestCase class ConstraintViolationBuilderTest extends TestCase
{ {
use ForwardCompatTestTrait;
private $root;
private $violations;
private $messageTemplate = '%value% is invalid';
private $builder;
private function doSetUp()
{
$this->root = [
'data' => [
'foo' => 'bar',
'baz' => 'foobar',
],
];
$this->violations = new ConstraintViolationList();
$this->builder = new ConstraintViolationBuilder($this->violations, new Valid(), $this->messageTemplate, [], $this->root, 'data', 'foo', new IdentityTranslator());
}
public function testAddViolation()
{
$this->builder->addViolation();
$this->assertViolationEquals(new ConstraintViolation($this->messageTemplate, $this->messageTemplate, [], $this->root, 'data', 'foo', null, null, new Valid()));
}
public function testAppendPropertyPath()
{
$this->builder
->atPath('foo')
->addViolation();
$this->assertViolationEquals(new ConstraintViolation($this->messageTemplate, $this->messageTemplate, [], $this->root, 'data.foo', 'foo', null, null, new Valid()));
}
public function testAppendMultiplePropertyPaths()
{
$this->builder
->atPath('foo')
->atPath('bar')
->addViolation();
$this->assertViolationEquals(new ConstraintViolation($this->messageTemplate, $this->messageTemplate, [], $this->root, 'data.foo.bar', 'foo', null, null, new Valid()));
}
public function testCodeCanBeSet()
{
$this->builder
->setCode(5)
->addViolation();
$this->assertViolationEquals(new ConstraintViolation($this->messageTemplate, $this->messageTemplate, [], $this->root, 'data', 'foo', null, 5, new Valid()));
}
public function testCauseCanBeSet()
{
$cause = new \LogicException();
$this->builder
->setCause($cause)
->addViolation();
$this->assertViolationEquals(new ConstraintViolation($this->messageTemplate, $this->messageTemplate, [], $this->root, 'data', 'foo', null, null, new Valid(), $cause));
}
private function assertViolationEquals(ConstraintViolation $expectedViolation)
{
$this->assertCount(1, $this->violations);
$violation = $this->violations->get(0);
$this->assertSame($expectedViolation->getMessage(), $violation->getMessage());
$this->assertSame($expectedViolation->getMessageTemplate(), $violation->getMessageTemplate());
$this->assertSame($expectedViolation->getParameters(), $violation->getParameters());
$this->assertSame($expectedViolation->getPlural(), $violation->getPlural());
$this->assertSame($expectedViolation->getRoot(), $violation->getRoot());
$this->assertSame($expectedViolation->getPropertyPath(), $violation->getPropertyPath());
$this->assertSame($expectedViolation->getInvalidValue(), $violation->getInvalidValue());
$this->assertSame($expectedViolation->getCode(), $violation->getCode());
$this->assertEquals($expectedViolation->getConstraint(), $violation->getConstraint());
$this->assertSame($expectedViolation->getCause(), $violation->getCause());
}
/** /**
* @group legacy * @group legacy
* @expectedDeprecation Not using a string as the error code in Symfony\Component\Validator\Violation\ConstraintViolationBuilder::setCode() is deprecated since Symfony 4.4. A type-hint will be added in 5.0. * @expectedDeprecation Not using a string as the error code in Symfony\Component\Validator\Violation\ConstraintViolationBuilder::setCode() is deprecated since Symfony 4.4. A type-hint will be added in 5.0.

View File

@ -22,7 +22,7 @@ namespace Symfony\Component\Yaml;
class Escaper class Escaper
{ {
// Characters that would cause a dumped string to require double quoting. // Characters that would cause a dumped string to require double quoting.
const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9"; const REGEX_CHARACTER_TO_ESCAPE = "[\\x00-\\x1f]|\x7f|\xc2\x85|\xc2\xa0|\xe2\x80\xa8|\xe2\x80\xa9";
// Mapping arrays for escaping a double quoted string. The backslash is // Mapping arrays for escaping a double quoted string. The backslash is
// first to ensure proper escaping because str_replace operates iteratively // first to ensure proper escaping because str_replace operates iteratively
@ -33,6 +33,7 @@ class Escaper
"\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f", "\x08", "\x09", "\x0a", "\x0b", "\x0c", "\x0d", "\x0e", "\x0f",
"\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17", "\x10", "\x11", "\x12", "\x13", "\x14", "\x15", "\x16", "\x17",
"\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f", "\x18", "\x19", "\x1a", "\x1b", "\x1c", "\x1d", "\x1e", "\x1f",
"\x7f",
"\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9", "\xc2\x85", "\xc2\xa0", "\xe2\x80\xa8", "\xe2\x80\xa9",
]; ];
private static $escaped = ['\\\\', '\\"', '\\\\', '\\"', private static $escaped = ['\\\\', '\\"', '\\\\', '\\"',
@ -40,6 +41,7 @@ class Escaper
'\\b', '\\t', '\\n', '\\v', '\\f', '\\r', '\\x0e', '\\x0f', '\\b', '\\t', '\\n', '\\v', '\\f', '\\r', '\\x0e', '\\x0f',
'\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17', '\\x10', '\\x11', '\\x12', '\\x13', '\\x14', '\\x15', '\\x16', '\\x17',
'\\x18', '\\x19', '\\x1a', '\\e', '\\x1c', '\\x1d', '\\x1e', '\\x1f', '\\x18', '\\x19', '\\x1a', '\\e', '\\x1c', '\\x1d', '\\x1e', '\\x1f',
'\\x7f',
'\\N', '\\_', '\\L', '\\P', '\\N', '\\_', '\\L', '\\P',
]; ];

View File

@ -223,6 +223,7 @@ EOF;
'double-quote' => ['"', "'\"'"], 'double-quote' => ['"', "'\"'"],
'slash' => ['/', '/'], 'slash' => ['/', '/'],
'backslash' => ['\\', '\\'], 'backslash' => ['\\', '\\'],
'del' => ["\x7f", '"\x7f"'],
'next-line' => ["\xC2\x85", '"\\N"'], 'next-line' => ["\xC2\x85", '"\\N"'],
'non-breaking-space' => ["\xc2\xa0", '"\\_"'], 'non-breaking-space' => ["\xc2\xa0", '"\\_"'],
'line-separator' => ["\xE2\x80\xA8", '"\\L"'], 'line-separator' => ["\xE2\x80\xA8", '"\\L"'],