Merge branch '2.8'
* 2.8: [travis] Add PHP 7 to allowed failures until segfaults are fixed [Intl] Fix test [Translator][fallback catalogues] fixed circular reference. bumped Symfony version to 2.3.33 updated VERSION for 2.3.32 update CONTRIBUTORS for 2.3.32 updated CHANGELOG for 2.3.32 Require symfony/intl ~2.4 when Locale::setDefault() is used [Form][2.7][ Choice type] fixed groups with empty array. [FrameworkBundle] Fix templating.helper.code.file_link_format when defined by ini setting [Config] Prototypes info [console] Use the description when no help is available Conflicts: .travis.yml CHANGELOG-2.3.md src/Symfony/Component/Form/composer.json src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php src/Symfony/Component/Intl/Tests/DateFormatter/AbstractIntlDateFormatterTest.php src/Symfony/Component/Translation/composer.json src/Symfony/Component/Validator/composer.json
This commit is contained in:
commit
6a41f11fac
|
@ -16,7 +16,10 @@ matrix:
|
||||||
- php: 5.6
|
- php: 5.6
|
||||||
env: deps=2.8
|
env: deps=2.8
|
||||||
- php: 7.0
|
- php: 7.0
|
||||||
|
- php: 5.6
|
||||||
env: deps=low
|
env: deps=low
|
||||||
|
allow_failures:
|
||||||
|
- php: 7
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
|
|
||||||
services: mongodb
|
services: mongodb
|
||||||
|
|
|
@ -14,8 +14,8 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Kris Wallsmith (kriswallsmith)
|
- Kris Wallsmith (kriswallsmith)
|
||||||
- Christophe Coevoet (stof)
|
- Christophe Coevoet (stof)
|
||||||
- Jakub Zalas (jakubzalas)
|
- Jakub Zalas (jakubzalas)
|
||||||
- Pascal Borreli (pborreli)
|
|
||||||
- Christian Flothmann (xabbuh)
|
- Christian Flothmann (xabbuh)
|
||||||
|
- Pascal Borreli (pborreli)
|
||||||
- Hugo Hamon (hhamon)
|
- Hugo Hamon (hhamon)
|
||||||
- Joseph Bielawski (stloyd)
|
- Joseph Bielawski (stloyd)
|
||||||
- Karma Dordrak (drak)
|
- Karma Dordrak (drak)
|
||||||
|
@ -26,15 +26,16 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Jean-François Simon (jfsimon)
|
- Jean-François Simon (jfsimon)
|
||||||
- Benjamin Eberlei (beberlei)
|
- Benjamin Eberlei (beberlei)
|
||||||
- Igor Wiedler (igorw)
|
- Igor Wiedler (igorw)
|
||||||
- Martin Hasoň (hason)
|
|
||||||
- Abdellatif Ait boudad (aitboudad)
|
- Abdellatif Ait boudad (aitboudad)
|
||||||
|
- Martin Hasoň (hason)
|
||||||
- Eriksen Costa (eriksencosta)
|
- Eriksen Costa (eriksencosta)
|
||||||
- Grégoire Pineau (lyrixx)
|
- Grégoire Pineau (lyrixx)
|
||||||
- Wouter De Jong (wouterj)
|
- Wouter De Jong (wouterj)
|
||||||
- Jonathan Wage (jwage)
|
- Jonathan Wage (jwage)
|
||||||
|
- Javier Eguiluz (javier.eguiluz)
|
||||||
|
- Kévin Dunglas (dunglas)
|
||||||
- Alexandre Salomé (alexandresalome)
|
- Alexandre Salomé (alexandresalome)
|
||||||
- William Durand (couac)
|
- William Durand (couac)
|
||||||
- Kévin Dunglas (dunglas)
|
|
||||||
- ornicar
|
- ornicar
|
||||||
- stealth35 (stealth35)
|
- stealth35 (stealth35)
|
||||||
- Alexander Mols (asm89)
|
- Alexander Mols (asm89)
|
||||||
|
@ -84,43 +85,42 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- excelwebzone
|
- excelwebzone
|
||||||
- Jacob Dreesen (jdreesen)
|
- Jacob Dreesen (jdreesen)
|
||||||
- Matthias Pigulla (mpdude)
|
- Matthias Pigulla (mpdude)
|
||||||
- Javier Eguiluz (javier.eguiluz)
|
|
||||||
- Fabien Pennequin (fabienpennequin)
|
- Fabien Pennequin (fabienpennequin)
|
||||||
- Peter Rehm (rpet)
|
- Peter Rehm (rpet)
|
||||||
- Peter Kokot (maastermedia)
|
- Peter Kokot (maastermedia)
|
||||||
- Gordon Franke (gimler)
|
- Gordon Franke (gimler)
|
||||||
- Robert Schönthal (digitalkaoz)
|
- Robert Schönthal (digitalkaoz)
|
||||||
|
- Jérémy DERUSSÉ (jderusse)
|
||||||
- Dariusz Ruminski
|
- Dariusz Ruminski
|
||||||
- Michal Piotrowski (eventhorizon)
|
- Michal Piotrowski (eventhorizon)
|
||||||
- Stefano Sala (stefano.sala)
|
- Stefano Sala (stefano.sala)
|
||||||
|
- David Buchmann (dbu)
|
||||||
- Juti Noppornpitak (shiroyuki)
|
- Juti Noppornpitak (shiroyuki)
|
||||||
- Sebastian Hörl (blogsh)
|
- Sebastian Hörl (blogsh)
|
||||||
- Daniel Gomes (danielcsgomes)
|
- Daniel Gomes (danielcsgomes)
|
||||||
- Hidenori Goto (hidenorigoto)
|
- Hidenori Goto (hidenorigoto)
|
||||||
- David Buchmann (dbu)
|
- Alexander Schwenn (xelaris)
|
||||||
- Guilherme Blanco (guilhermeblanco)
|
- Guilherme Blanco (guilhermeblanco)
|
||||||
- Jérémy DERUSSÉ (jderusse)
|
|
||||||
- Pablo Godel (pgodel)
|
- Pablo Godel (pgodel)
|
||||||
- Eric GELOEN (gelo)
|
- Eric GELOEN (gelo)
|
||||||
|
- Vladimir Reznichenko (kalessil)
|
||||||
- Jérémie Augustin (jaugustin)
|
- Jérémie Augustin (jaugustin)
|
||||||
- Alexander Schwenn (xelaris)
|
- Issei Murasawa (issei_m)
|
||||||
- Rafael Dohms (rdohms)
|
- Rafael Dohms (rdohms)
|
||||||
- Arnaud Kleinpeter (nanocom)
|
- Arnaud Kleinpeter (nanocom)
|
||||||
|
- Iltar van der Berg (kjarli)
|
||||||
- Joshua Thijssen
|
- Joshua Thijssen
|
||||||
- Vladimir Reznichenko (kalessil)
|
|
||||||
- Tigran Azatyan (tigranazatyan)
|
- Tigran Azatyan (tigranazatyan)
|
||||||
- Issei Murasawa (issei_m)
|
- Sebastiaan Stok (sstok)
|
||||||
- Richard Shank (iampersistent)
|
- Richard Shank (iampersistent)
|
||||||
- Clemens Tolboom
|
- Clemens Tolboom
|
||||||
- Helmer Aaviksoo
|
- Helmer Aaviksoo
|
||||||
- Sebastiaan Stok (sstok)
|
|
||||||
- Hiromi Hishida (77web)
|
- Hiromi Hishida (77web)
|
||||||
- Matthieu Ouellette-Vachon (maoueh)
|
- Matthieu Ouellette-Vachon (maoueh)
|
||||||
- Michał Pipa (michal.pipa)
|
- Michał Pipa (michal.pipa)
|
||||||
- Amal Raghav (kertz)
|
- Amal Raghav (kertz)
|
||||||
- Jonathan Ingram (jonathaningram)
|
- Jonathan Ingram (jonathaningram)
|
||||||
- Artur Kotyrba
|
- Artur Kotyrba
|
||||||
- Iltar van der Berg
|
|
||||||
- Rouven Weßling (realityking)
|
- Rouven Weßling (realityking)
|
||||||
- Andréia Bohner (andreia)
|
- Andréia Bohner (andreia)
|
||||||
- Dmitrii Chekaliuk (lazyhammer)
|
- Dmitrii Chekaliuk (lazyhammer)
|
||||||
|
@ -146,6 +146,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- fivestar
|
- fivestar
|
||||||
- Dominique Bongiraud
|
- Dominique Bongiraud
|
||||||
- Leszek Prabucki (l3l0)
|
- Leszek Prabucki (l3l0)
|
||||||
|
- Alexander M. Turek (derrabus)
|
||||||
- François Zaninotto (fzaninotto)
|
- François Zaninotto (fzaninotto)
|
||||||
- Dustin Whittle (dustinwhittle)
|
- Dustin Whittle (dustinwhittle)
|
||||||
- jeff
|
- jeff
|
||||||
|
@ -164,7 +165,6 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Francois Zaninotto
|
- Francois Zaninotto
|
||||||
- Alexander Kotynia (olden)
|
- Alexander Kotynia (olden)
|
||||||
- Daniel Tschinder
|
- Daniel Tschinder
|
||||||
- Alexander M. Turek (derrabus)
|
|
||||||
- Elnur Abdurrakhimov (elnur)
|
- Elnur Abdurrakhimov (elnur)
|
||||||
- John Kary (johnkary)
|
- John Kary (johnkary)
|
||||||
- Manuel Reinhard (sprain)
|
- Manuel Reinhard (sprain)
|
||||||
|
@ -197,6 +197,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Robert Kiss (kepten)
|
- Robert Kiss (kepten)
|
||||||
- Ruben Gonzalez (rubenrua)
|
- Ruben Gonzalez (rubenrua)
|
||||||
- Kim Hemsø Rasmussen (kimhemsoe)
|
- Kim Hemsø Rasmussen (kimhemsoe)
|
||||||
|
- Diego Saint Esteben (dosten)
|
||||||
- Florian Lonqueu-Brochard (florianlb)
|
- Florian Lonqueu-Brochard (florianlb)
|
||||||
- Tom Van Looy (tvlooy)
|
- Tom Van Looy (tvlooy)
|
||||||
- Wouter Van Hecke
|
- Wouter Van Hecke
|
||||||
|
@ -212,6 +213,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Andrew Moore (finewolf)
|
- Andrew Moore (finewolf)
|
||||||
- Bertrand Zuchuat (garfield-fr)
|
- Bertrand Zuchuat (garfield-fr)
|
||||||
- Gabor Toth (tgabi333)
|
- Gabor Toth (tgabi333)
|
||||||
|
- Grégoire Paris (greg0ire)
|
||||||
- Alex Pott
|
- Alex Pott
|
||||||
- realmfoo
|
- realmfoo
|
||||||
- Thomas Tourlourat (armetiz)
|
- Thomas Tourlourat (armetiz)
|
||||||
|
@ -232,8 +234,11 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Thomas Schulz (king2500)
|
- Thomas Schulz (king2500)
|
||||||
- Marco Pivetta (ocramius)
|
- Marco Pivetta (ocramius)
|
||||||
- Ricard Clau (ricardclau)
|
- Ricard Clau (ricardclau)
|
||||||
|
- Lorenz Schori
|
||||||
|
- Giorgio Premi
|
||||||
- Erin Millard
|
- Erin Millard
|
||||||
- Matthew Lewinski (lewinski)
|
- Matthew Lewinski (lewinski)
|
||||||
|
- Marcos Sánchez
|
||||||
- alquerci
|
- alquerci
|
||||||
- Francesco Levorato
|
- Francesco Levorato
|
||||||
- Vitaliy Zakharov (zakharovvi)
|
- Vitaliy Zakharov (zakharovvi)
|
||||||
|
@ -260,13 +265,13 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Kirill chEbba Chebunin (chebba)
|
- Kirill chEbba Chebunin (chebba)
|
||||||
- Greg Thornton (xdissent)
|
- Greg Thornton (xdissent)
|
||||||
- Baptiste Clavié (talus)
|
- Baptiste Clavié (talus)
|
||||||
- Grégoire Paris (greg0ire)
|
|
||||||
- Costin Bereveanu (schniper)
|
- Costin Bereveanu (schniper)
|
||||||
- Loïc Chardonnet (gnusat)
|
- Loïc Chardonnet (gnusat)
|
||||||
- Marek Kalnik (marekkalnik)
|
- Marek Kalnik (marekkalnik)
|
||||||
- Vyacheslav Salakhutdinov (megazoll)
|
- Vyacheslav Salakhutdinov (megazoll)
|
||||||
- Hassan Amouhzi
|
- Hassan Amouhzi
|
||||||
- Tamas Szijarto
|
- Tamas Szijarto
|
||||||
|
- Michaël Perrin (michael.perrin)
|
||||||
- Pavel Volokitin (pvolok)
|
- Pavel Volokitin (pvolok)
|
||||||
- Endre Fejes
|
- Endre Fejes
|
||||||
- Tobias Naumann (tna)
|
- Tobias Naumann (tna)
|
||||||
|
@ -297,8 +302,8 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Brian King
|
- Brian King
|
||||||
- Michel Salib (michelsalib)
|
- Michel Salib (michelsalib)
|
||||||
- geoffrey
|
- geoffrey
|
||||||
- Lorenz Schori
|
|
||||||
- Jeanmonod David (jeanmonod)
|
- Jeanmonod David (jeanmonod)
|
||||||
|
- Thomas Lallement (raziel057)
|
||||||
- Jan Schumann
|
- Jan Schumann
|
||||||
- Niklas Fiekas
|
- Niklas Fiekas
|
||||||
- lancergr
|
- lancergr
|
||||||
|
@ -370,6 +375,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Florian Rey (nervo)
|
- Florian Rey (nervo)
|
||||||
- Rodrigo Borrego Bernabé (rodrigobb)
|
- Rodrigo Borrego Bernabé (rodrigobb)
|
||||||
- Denis Gorbachev (starfall)
|
- Denis Gorbachev (starfall)
|
||||||
|
- Titouan Galopin (tgalopin)
|
||||||
- Steven Surowiec
|
- Steven Surowiec
|
||||||
- Kevin Saliou (kbsali)
|
- Kevin Saliou (kbsali)
|
||||||
- Daniel Tschinder
|
- Daniel Tschinder
|
||||||
|
@ -393,7 +399,6 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Mantas Var (mvar)
|
- Mantas Var (mvar)
|
||||||
- Sebastian Krebs
|
- Sebastian Krebs
|
||||||
- Christopher Davis (chrisguitarguy)
|
- Christopher Davis (chrisguitarguy)
|
||||||
- Thomas Lallement (raziel057)
|
|
||||||
- alcaeus
|
- alcaeus
|
||||||
- vitaliytv
|
- vitaliytv
|
||||||
- Markus Bachmann (baachi)
|
- Markus Bachmann (baachi)
|
||||||
|
@ -449,6 +454,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Simon Schick (simonsimcity)
|
- Simon Schick (simonsimcity)
|
||||||
- redstar504
|
- redstar504
|
||||||
- Hossein Bukhamsin
|
- Hossein Bukhamsin
|
||||||
|
- origaminal
|
||||||
- Paweł Wacławczyk (pwc)
|
- Paweł Wacławczyk (pwc)
|
||||||
- Oleg Zinchenko (cystbear)
|
- Oleg Zinchenko (cystbear)
|
||||||
- Johannes Klauss (cloppy)
|
- Johannes Klauss (cloppy)
|
||||||
|
@ -538,6 +544,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Tony Malzhacker
|
- Tony Malzhacker
|
||||||
- Cyril Quintin (cyqui)
|
- Cyril Quintin (cyqui)
|
||||||
- Gerard van Helden (drm)
|
- Gerard van Helden (drm)
|
||||||
|
- Johnny Peck (johnnypeck)
|
||||||
- David Romaní
|
- David Romaní
|
||||||
- Patrick Allaert
|
- Patrick Allaert
|
||||||
- Gustavo Falco (gfalco)
|
- Gustavo Falco (gfalco)
|
||||||
|
@ -545,6 +552,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Aleksey Podskrebyshev
|
- Aleksey Podskrebyshev
|
||||||
- David Marín Carreño (davefx)
|
- David Marín Carreño (davefx)
|
||||||
- Jörn Lang (j.lang)
|
- Jörn Lang (j.lang)
|
||||||
|
- Leo Feyer
|
||||||
- mwsaz
|
- mwsaz
|
||||||
- Benoît Bourgeois
|
- Benoît Bourgeois
|
||||||
- corphi
|
- corphi
|
||||||
|
@ -562,7 +570,6 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Christian Morgan
|
- Christian Morgan
|
||||||
- Alexander Miehe (engerim)
|
- Alexander Miehe (engerim)
|
||||||
- Morgan Auchede (mauchede)
|
- Morgan Auchede (mauchede)
|
||||||
- Titouan Galopin (tgalopin)
|
|
||||||
- Don Pinkster
|
- Don Pinkster
|
||||||
- Maksim Muruev
|
- Maksim Muruev
|
||||||
- Emil Einarsson
|
- Emil Einarsson
|
||||||
|
@ -595,6 +602,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Reece Fowell (reecefowell)
|
- Reece Fowell (reecefowell)
|
||||||
- stefan.r
|
- stefan.r
|
||||||
- Matthieu Napoli (mnapoli)
|
- Matthieu Napoli (mnapoli)
|
||||||
|
- Alexandru Furculita (afurculita)
|
||||||
- Ben Ramsey (ramsey)
|
- Ben Ramsey (ramsey)
|
||||||
- Christian Jul Jensen
|
- Christian Jul Jensen
|
||||||
- The Whole Life to Learn
|
- The Whole Life to Learn
|
||||||
|
@ -610,7 +618,6 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Sander Marechal
|
- Sander Marechal
|
||||||
- Radosław Benkel
|
- Radosław Benkel
|
||||||
- Gennady Telegin (gtelegin)
|
- Gennady Telegin (gtelegin)
|
||||||
- Marcos Sánchez
|
|
||||||
- ttomor
|
- ttomor
|
||||||
- Mei Gwilym (meigwilym)
|
- Mei Gwilym (meigwilym)
|
||||||
- Michael H. Arieli (excelwebzone)
|
- Michael H. Arieli (excelwebzone)
|
||||||
|
@ -647,6 +654,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Per Sandström (per)
|
- Per Sandström (per)
|
||||||
- Goran Juric
|
- Goran Juric
|
||||||
- Laurent Ghirardotti (laurentg)
|
- Laurent Ghirardotti (laurentg)
|
||||||
|
- Nicolas Macherey
|
||||||
- Jan Rosier (rosier)
|
- Jan Rosier (rosier)
|
||||||
- Lin Clark
|
- Lin Clark
|
||||||
- Jeremy David (jeremy.david)
|
- Jeremy David (jeremy.david)
|
||||||
|
@ -695,7 +703,6 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Jochen Bayer (jocl)
|
- Jochen Bayer (jocl)
|
||||||
- Jeremy Bush
|
- Jeremy Bush
|
||||||
- wizhippo
|
- wizhippo
|
||||||
- Diego Saint Esteben (dosten)
|
|
||||||
- rpg600
|
- rpg600
|
||||||
- Péter Buri (burci)
|
- Péter Buri (burci)
|
||||||
- Davide Borsatto (davide.borsatto)
|
- Davide Borsatto (davide.borsatto)
|
||||||
|
@ -750,7 +757,6 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Jakub Kulhan
|
- Jakub Kulhan
|
||||||
- Mo Di (modi)
|
- Mo Di (modi)
|
||||||
- Jeroen van den Enden (stoefke)
|
- Jeroen van den Enden (stoefke)
|
||||||
- origaminal
|
|
||||||
- Quique Porta (quiqueporta)
|
- Quique Porta (quiqueporta)
|
||||||
- Tomasz Szymczyk (karion)
|
- Tomasz Szymczyk (karion)
|
||||||
- ConneXNL
|
- ConneXNL
|
||||||
|
@ -782,8 +788,10 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Adrien Gallou (agallou)
|
- Adrien Gallou (agallou)
|
||||||
- Karol Sójko (karolsojko)
|
- Karol Sójko (karolsojko)
|
||||||
- sl_toto (sl_toto)
|
- sl_toto (sl_toto)
|
||||||
|
- Walter Dal Mut (wdalmut)
|
||||||
- Sébastien HOUZÉ
|
- Sébastien HOUZÉ
|
||||||
- Jingyu Wang
|
- Jingyu Wang
|
||||||
|
- Daniel Espendiller
|
||||||
- steveYeah
|
- steveYeah
|
||||||
- Samy Dindane (dinduks)
|
- Samy Dindane (dinduks)
|
||||||
- Keri Henare (kerihenare)
|
- Keri Henare (kerihenare)
|
||||||
|
@ -823,10 +831,12 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Tadcka
|
- Tadcka
|
||||||
- Beth Binkovitz
|
- Beth Binkovitz
|
||||||
- Romain Geissler
|
- Romain Geissler
|
||||||
|
- Tomaz Ahlin
|
||||||
- Benjamin Cremer (bcremer)
|
- Benjamin Cremer (bcremer)
|
||||||
- Marcus Stöhr (dafish)
|
- Marcus Stöhr (dafish)
|
||||||
- Emmanuel Vella (emmanuel.vella)
|
- Emmanuel Vella (emmanuel.vella)
|
||||||
- Carsten Nielsen (phreaknerd)
|
- Carsten Nielsen (phreaknerd)
|
||||||
|
- Mathieu Rochette
|
||||||
- Jay Severson
|
- Jay Severson
|
||||||
- René Kerner
|
- René Kerner
|
||||||
- Nathaniel Catchpole
|
- Nathaniel Catchpole
|
||||||
|
@ -861,6 +871,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Sebastian Ionescu
|
- Sebastian Ionescu
|
||||||
- Thomas Ploch
|
- Thomas Ploch
|
||||||
- Simon Neidhold
|
- Simon Neidhold
|
||||||
|
- Valentin VALCIU
|
||||||
- Kevin Dew
|
- Kevin Dew
|
||||||
- James Cowgill
|
- James Cowgill
|
||||||
- Nicolas Schwartz (nicoschwartz)
|
- Nicolas Schwartz (nicoschwartz)
|
||||||
|
@ -911,6 +922,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- 2manypeople
|
- 2manypeople
|
||||||
- Wing
|
- Wing
|
||||||
- Thomas Bibb
|
- Thomas Bibb
|
||||||
|
- Matt Farmer
|
||||||
- catch
|
- catch
|
||||||
- Alexandre Segura
|
- Alexandre Segura
|
||||||
- Josef Cech
|
- Josef Cech
|
||||||
|
@ -936,11 +948,11 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Manatsawin Hanmongkolchai
|
- Manatsawin Hanmongkolchai
|
||||||
- Gunther Konig
|
- Gunther Konig
|
||||||
- Maciej Schmidt
|
- Maciej Schmidt
|
||||||
|
- nuncanada
|
||||||
- flack
|
- flack
|
||||||
- František Bereň
|
- František Bereň
|
||||||
- Christoph Nissle (derstoffel)
|
- Christoph Nissle (derstoffel)
|
||||||
- Ionel Scutelnicu (ionelscutelnicu)
|
- Ionel Scutelnicu (ionelscutelnicu)
|
||||||
- Johnny Peck (johnnypeck)
|
|
||||||
- Nicolas Tallefourtané (nicolab)
|
- Nicolas Tallefourtané (nicolab)
|
||||||
- Botond Dani (picur)
|
- Botond Dani (picur)
|
||||||
- Thierry Marianne (thierrymarianne)
|
- Thierry Marianne (thierrymarianne)
|
||||||
|
@ -1035,6 +1047,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Florian Pfitzer (marmelatze)
|
- Florian Pfitzer (marmelatze)
|
||||||
- Martin Mayer (martin)
|
- Martin Mayer (martin)
|
||||||
- Grzegorz Łukaszewicz (newicz)
|
- Grzegorz Łukaszewicz (newicz)
|
||||||
|
- Veres Lajos
|
||||||
- grifx
|
- grifx
|
||||||
- Robert Campbell
|
- Robert Campbell
|
||||||
- Matt Lehner
|
- Matt Lehner
|
||||||
|
@ -1095,11 +1108,11 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Kevin Herrera (kherge)
|
- Kevin Herrera (kherge)
|
||||||
- Luis Ramón López López (lrlopez)
|
- Luis Ramón López López (lrlopez)
|
||||||
- Muriel (metalmumu)
|
- Muriel (metalmumu)
|
||||||
- Michaël Perrin (michael.perrin)
|
|
||||||
- Michael Pohlers (mick_the_big)
|
- Michael Pohlers (mick_the_big)
|
||||||
- Cayetano Soriano Gallego (neoshadybeat)
|
- Cayetano Soriano Gallego (neoshadybeat)
|
||||||
- Pablo Monterde Perez (plebs)
|
- Pablo Monterde Perez (plebs)
|
||||||
- Jimmy Leger (redpanda)
|
- Jimmy Leger (redpanda)
|
||||||
|
- Pavel Batanov (scaytrase)
|
||||||
- Cyrille Jouineau (tuxosaurus)
|
- Cyrille Jouineau (tuxosaurus)
|
||||||
- Yorkie Chadwick (yorkie76)
|
- Yorkie Chadwick (yorkie76)
|
||||||
- Yanick Witschi
|
- Yanick Witschi
|
||||||
|
@ -1123,6 +1136,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Ismail Asci (ismailasci)
|
- Ismail Asci (ismailasci)
|
||||||
- Simon CONSTANS (kosssi)
|
- Simon CONSTANS (kosssi)
|
||||||
- Kristof Van Cauwenbergh (kristofvc)
|
- Kristof Van Cauwenbergh (kristofvc)
|
||||||
|
- Tristan Darricau (nicofuma)
|
||||||
- Ramon Henrique Ornelas (ramonornela)
|
- Ramon Henrique Ornelas (ramonornela)
|
||||||
- Markus S. (staabm)
|
- Markus S. (staabm)
|
||||||
- Till Klampaeckel (till)
|
- Till Klampaeckel (till)
|
||||||
|
@ -1180,6 +1194,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Skorney
|
- Skorney
|
||||||
- mieszko4
|
- mieszko4
|
||||||
- Neophy7e
|
- Neophy7e
|
||||||
|
- bokonet
|
||||||
- Arrilot
|
- Arrilot
|
||||||
- Markus Staab
|
- Markus Staab
|
||||||
- Pierre-Louis LAUNAY
|
- Pierre-Louis LAUNAY
|
||||||
|
@ -1190,6 +1205,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Abdulkadir N. A.
|
- Abdulkadir N. A.
|
||||||
- Yevgen Kovalienia
|
- Yevgen Kovalienia
|
||||||
- Sema
|
- Sema
|
||||||
|
- Elan Ruusamäe
|
||||||
- Thorsten Hallwas
|
- Thorsten Hallwas
|
||||||
- Michael Squires
|
- Michael Squires
|
||||||
- Norman Soetbeer
|
- Norman Soetbeer
|
||||||
|
@ -1203,7 +1219,6 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Penny Leach
|
- Penny Leach
|
||||||
- Richard Trebichavský
|
- Richard Trebichavský
|
||||||
- g123456789l
|
- g123456789l
|
||||||
- Giorgio Premi
|
|
||||||
- oscartv
|
- oscartv
|
||||||
- DanSync
|
- DanSync
|
||||||
- Peter Zwosta
|
- Peter Zwosta
|
||||||
|
@ -1261,6 +1276,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- samuel laulhau (lalop)
|
- samuel laulhau (lalop)
|
||||||
- Laurent Bachelier (laurentb)
|
- Laurent Bachelier (laurentb)
|
||||||
- Jérôme Parmentier (lctrs)
|
- Jérôme Parmentier (lctrs)
|
||||||
|
- Florent Viel (luxifer)
|
||||||
- Matthieu Moquet (mattketmo)
|
- Matthieu Moquet (mattketmo)
|
||||||
- Moritz Borgmann (mborgmann)
|
- Moritz Borgmann (mborgmann)
|
||||||
- Matt Drollette (mdrollette)
|
- Matt Drollette (mdrollette)
|
||||||
|
@ -1279,6 +1295,7 @@ Symfony is the result of the work of many people who made the code better
|
||||||
- Rich Sage (richsage)
|
- Rich Sage (richsage)
|
||||||
- Ruud Kamphuis (ruudk)
|
- Ruud Kamphuis (ruudk)
|
||||||
- Bart Ruysseveldt (ruyss)
|
- Bart Ruysseveldt (ruyss)
|
||||||
|
- Sascha Dens (saschadens)
|
||||||
- scourgen hung (scourgen)
|
- scourgen hung (scourgen)
|
||||||
- Sebastian Busch (sebu)
|
- Sebastian Busch (sebu)
|
||||||
- André Filipe Gonçalves Neves (seven)
|
- André Filipe Gonçalves Neves (seven)
|
||||||
|
|
|
@ -479,7 +479,7 @@ class FrameworkExtension extends Extension
|
||||||
'sublime' => 'subl://open?url=file://%%f&line=%%l',
|
'sublime' => 'subl://open?url=file://%%f&line=%%l',
|
||||||
);
|
);
|
||||||
|
|
||||||
$container->setParameter('templating.helper.code.file_link_format', ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: (isset($links[$ide]) ? $links[$ide] : $ide));
|
$container->setParameter('templating.helper.code.file_link_format', str_replace('%', '%%', ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format')) ?: (isset($links[$ide]) ? $links[$ide] : $ide));
|
||||||
}
|
}
|
||||||
|
|
||||||
$container->setParameter('fragment.renderer.hinclude.global_template', $config['hinclude_default_template']);
|
$container->setParameter('fragment.renderer.hinclude.global_template', $config['hinclude_default_template']);
|
||||||
|
|
|
@ -84,14 +84,18 @@ class XmlReferenceDumper
|
||||||
|
|
||||||
// render prototyped nodes
|
// render prototyped nodes
|
||||||
if ($node instanceof PrototypedArrayNode) {
|
if ($node instanceof PrototypedArrayNode) {
|
||||||
array_unshift($rootComments, 'prototype');
|
$prototype = $node->getPrototype();
|
||||||
|
|
||||||
|
$info = 'prototype';
|
||||||
|
if (null !== $prototype->getInfo()) {
|
||||||
|
$info .= ': '.$prototype->getInfo();
|
||||||
|
}
|
||||||
|
array_unshift($rootComments, $info);
|
||||||
|
|
||||||
if ($key = $node->getKeyAttribute()) {
|
if ($key = $node->getKeyAttribute()) {
|
||||||
$rootAttributes[$key] = str_replace('-', ' ', $rootName).' '.$key;
|
$rootAttributes[$key] = str_replace('-', ' ', $rootName).' '.$key;
|
||||||
}
|
}
|
||||||
|
|
||||||
$prototype = $node->getPrototype();
|
|
||||||
|
|
||||||
if ($prototype instanceof ArrayNode) {
|
if ($prototype instanceof ArrayNode) {
|
||||||
$children = $prototype->getChildren();
|
$children = $prototype->getChildren();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -69,7 +69,12 @@ class YamlReferenceDumper
|
||||||
if ($key = $node->getKeyAttribute()) {
|
if ($key = $node->getKeyAttribute()) {
|
||||||
$keyNodeClass = 'Symfony\Component\Config\Definition\\'.($prototype instanceof ArrayNode ? 'ArrayNode' : 'ScalarNode');
|
$keyNodeClass = 'Symfony\Component\Config\Definition\\'.($prototype instanceof ArrayNode ? 'ArrayNode' : 'ScalarNode');
|
||||||
$keyNode = new $keyNodeClass($key, $node);
|
$keyNode = new $keyNodeClass($key, $node);
|
||||||
$keyNode->setInfo('Prototype');
|
|
||||||
|
$info = 'Prototype';
|
||||||
|
if (null !== $prototype->getInfo()) {
|
||||||
|
$info .= ': '.$prototype->getInfo();
|
||||||
|
}
|
||||||
|
$keyNode->setInfo($info);
|
||||||
|
|
||||||
// add children
|
// add children
|
||||||
foreach ($children as $childNode) {
|
foreach ($children as $childNode) {
|
||||||
|
|
|
@ -64,7 +64,7 @@ class XmlReferenceDumperTest extends \PHPUnit_Framework_TestCase
|
||||||
child3=""
|
child3=""
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- prototype -->
|
<!-- prototype: Parameter name -->
|
||||||
<parameter name="parameter name">scalar value</parameter>
|
<parameter name="parameter name">scalar value</parameter>
|
||||||
|
|
||||||
<!-- prototype -->
|
<!-- prototype -->
|
||||||
|
|
|
@ -56,7 +56,7 @@ acme_root:
|
||||||
child3: ~ # Example: example setting
|
child3: ~ # Example: example setting
|
||||||
parameters:
|
parameters:
|
||||||
|
|
||||||
# Prototype
|
# Prototype: Parameter name
|
||||||
name: ~
|
name: ~
|
||||||
connections:
|
connections:
|
||||||
# Prototype
|
# Prototype
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ExampleConfiguration implements ConfigurationInterface
|
||||||
->end()
|
->end()
|
||||||
->arrayNode('parameters')
|
->arrayNode('parameters')
|
||||||
->useAttributeAsKey('name')
|
->useAttributeAsKey('name')
|
||||||
->prototype('scalar')->end()
|
->prototype('scalar')->info('Parameter name')->end()
|
||||||
->end()
|
->end()
|
||||||
->arrayNode('connections')
|
->arrayNode('connections')
|
||||||
->prototype('array')
|
->prototype('array')
|
||||||
|
|
|
@ -517,7 +517,7 @@ class Command
|
||||||
*/
|
*/
|
||||||
public function getHelp()
|
public function getHelp()
|
||||||
{
|
{
|
||||||
return $this->help;
|
return $this->help ?: $this->description;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -131,6 +131,8 @@ class CommandTest extends \PHPUnit_Framework_TestCase
|
||||||
$ret = $command->setHelp('help1');
|
$ret = $command->setHelp('help1');
|
||||||
$this->assertEquals($command, $ret, '->setHelp() implements a fluent interface');
|
$this->assertEquals($command, $ret, '->setHelp() implements a fluent interface');
|
||||||
$this->assertEquals('help1', $command->getHelp(), '->setHelp() sets the help');
|
$this->assertEquals('help1', $command->getHelp(), '->setHelp() sets the help');
|
||||||
|
$command->setHelp('');
|
||||||
|
$this->assertEquals('description', $command->getHelp(), '->getHelp() fallback to the description');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetProcessedHelp()
|
public function testGetProcessedHelp()
|
||||||
|
|
|
@ -100,7 +100,7 @@
|
||||||
<usage>afoobar</usage>
|
<usage>afoobar</usage>
|
||||||
</usages>
|
</usages>
|
||||||
<description>The foo:bar command</description>
|
<description>The foo:bar command</description>
|
||||||
<help/>
|
<help>The foo:bar command</help>
|
||||||
<arguments/>
|
<arguments/>
|
||||||
<options>
|
<options>
|
||||||
<option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
|
<option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<usage>afoobar</usage>
|
<usage>afoobar</usage>
|
||||||
</usages>
|
</usages>
|
||||||
<description>The foo:bar command</description>
|
<description>The foo:bar command</description>
|
||||||
<help/>
|
<help>The foo:bar command</help>
|
||||||
<arguments/>
|
<arguments/>
|
||||||
<options>
|
<options>
|
||||||
<option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
|
<option name="--help" shortcut="-h" accept_value="0" is_value_required="0" is_multiple="0">
|
||||||
|
|
|
@ -172,6 +172,10 @@ class DefaultChoiceListFactory implements ChoiceListFactoryInterface
|
||||||
private static function addChoiceViewsGroupedBy($groupBy, $label, $choices, $keys, &$index, $attr, $isPreferred, &$preferredViews, &$otherViews)
|
private static function addChoiceViewsGroupedBy($groupBy, $label, $choices, $keys, &$index, $attr, $isPreferred, &$preferredViews, &$otherViews)
|
||||||
{
|
{
|
||||||
foreach ($groupBy as $key => $value) {
|
foreach ($groupBy as $key => $value) {
|
||||||
|
if (null === $value) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Add the contents of groups to new ChoiceGroupView instances
|
// Add the contents of groups to new ChoiceGroupView instances
|
||||||
if (is_array($value)) {
|
if (is_array($value)) {
|
||||||
$preferredViewsForGroup = array();
|
$preferredViewsForGroup = array();
|
||||||
|
|
|
@ -536,6 +536,7 @@ class DefaultChoiceListFactoryTest extends \PHPUnit_Framework_TestCase
|
||||||
$list = new ArrayChoiceList(array(
|
$list = new ArrayChoiceList(array(
|
||||||
'Group 1' => array('A' => $this->obj1, 'B' => $this->obj2),
|
'Group 1' => array('A' => $this->obj1, 'B' => $this->obj2),
|
||||||
'Group 2' => array('C' => $this->obj3, 'D' => $this->obj4),
|
'Group 2' => array('C' => $this->obj3, 'D' => $this->obj4),
|
||||||
|
'Group empty' => array(),
|
||||||
));
|
));
|
||||||
|
|
||||||
$view = $this->factory->createView(
|
$view = $this->factory->createView(
|
||||||
|
|
|
@ -29,7 +29,7 @@ class TimeZoneTransformer extends Transformer
|
||||||
{
|
{
|
||||||
$timeZone = substr($dateTime->getTimezone()->getName(), 0, 3);
|
$timeZone = substr($dateTime->getTimezone()->getName(), 0, 3);
|
||||||
|
|
||||||
if (!in_array($timeZone, array('Etc', 'UTC'))) {
|
if (!in_array($timeZone, array('Etc', 'UTC', 'GMT'))) {
|
||||||
throw new NotImplementedException('Time zone different than GMT or UTC is not supported as a formatting output.');
|
throw new NotImplementedException('Time zone different than GMT or UTC is not supported as a formatting output.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -811,7 +811,7 @@ class NumberFormatter
|
||||||
* @param mixed $value The value to be converted
|
* @param mixed $value The value to be converted
|
||||||
* @param int $type The type to convert. Can be TYPE_DOUBLE (float) or TYPE_INT32 (int)
|
* @param int $type The type to convert. Can be TYPE_DOUBLE (float) or TYPE_INT32 (int)
|
||||||
*
|
*
|
||||||
* @return int|float The converted value
|
* @return int|float|false The converted value
|
||||||
*/
|
*/
|
||||||
private function convertValueDataType($value, $type)
|
private function convertValueDataType($value, $type)
|
||||||
{
|
{
|
||||||
|
@ -831,7 +831,7 @@ class NumberFormatter
|
||||||
*
|
*
|
||||||
* @param mixed $value The value to be converted
|
* @param mixed $value The value to be converted
|
||||||
*
|
*
|
||||||
* @return int The converted value
|
* @return int|false The converted value
|
||||||
*/
|
*/
|
||||||
private function getInt32Value($value)
|
private function getInt32Value($value)
|
||||||
{
|
{
|
||||||
|
@ -847,7 +847,9 @@ class NumberFormatter
|
||||||
*
|
*
|
||||||
* @param mixed $value The value to be converted
|
* @param mixed $value The value to be converted
|
||||||
*
|
*
|
||||||
* @return int|false The converted value
|
* @return int|float|false The converted value
|
||||||
|
*
|
||||||
|
* @see https://bugs.php.net/bug.php?id=59597 Bug #59597
|
||||||
*/
|
*/
|
||||||
private function getInt64Value($value)
|
private function getInt64Value($value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -353,10 +353,17 @@ abstract class AbstractIntlDateFormatterTest extends \PHPUnit_Framework_TestCase
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testFormatWithDateTimeZone()
|
public function testFormatWithDateTimeZoneGmt()
|
||||||
{
|
{
|
||||||
if (defined('HHVM_VERSION_ID')) {
|
$formatter = $this->getDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, new \DateTimeZone('GMT'), IntlDateFormatter::GREGORIAN, 'zzzz');
|
||||||
$this->markTestSkipped('This test cannot work on HHVM. See https://github.com/facebook/hhvm/issues/5875 for the issue.');
|
|
||||||
|
$this->assertEquals('GMT', $formatter->format(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testFormatWithDateTimeZoneGmtOffset()
|
||||||
|
{
|
||||||
|
if (defined('HHVM_VERSION_ID') || PHP_VERSION_ID <= 50509) {
|
||||||
|
$this->markTestSkipped('DateTimeZone GMT offsets are supported since 5.5.10. See https://github.com/facebook/hhvm/issues/5875 for HHVM.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$formatter = $this->getDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, new \DateTimeZone('GMT+03:00'), IntlDateFormatter::GREGORIAN, 'zzzz');
|
$formatter = $this->getDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, new \DateTimeZone('GMT+03:00'), IntlDateFormatter::GREGORIAN, 'zzzz');
|
||||||
|
|
|
@ -190,6 +190,13 @@ class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterf
|
||||||
public function addFallbackCatalogue(MessageCatalogueInterface $catalogue)
|
public function addFallbackCatalogue(MessageCatalogueInterface $catalogue)
|
||||||
{
|
{
|
||||||
// detect circular references
|
// detect circular references
|
||||||
|
$c = $catalogue;
|
||||||
|
while ($c = $c->getFallbackCatalogue()) {
|
||||||
|
if ($c->getLocale() === $this->getLocale()) {
|
||||||
|
throw new \LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$c = $this;
|
$c = $this;
|
||||||
do {
|
do {
|
||||||
if ($c->getLocale() === $catalogue->getLocale()) {
|
if ($c->getLocale() === $catalogue->getLocale()) {
|
||||||
|
|
|
@ -127,7 +127,7 @@ class MessageCatalogueTest extends \PHPUnit_Framework_TestCase
|
||||||
/**
|
/**
|
||||||
* @expectedException \LogicException
|
* @expectedException \LogicException
|
||||||
*/
|
*/
|
||||||
public function testAddFallbackCatalogueWithCircularReference()
|
public function testAddFallbackCatalogueWithParentCircularReference()
|
||||||
{
|
{
|
||||||
$main = new MessageCatalogue('en_US');
|
$main = new MessageCatalogue('en_US');
|
||||||
$fallback = new MessageCatalogue('fr_FR');
|
$fallback = new MessageCatalogue('fr_FR');
|
||||||
|
@ -136,6 +136,20 @@ class MessageCatalogueTest extends \PHPUnit_Framework_TestCase
|
||||||
$main->addFallbackCatalogue($fallback);
|
$main->addFallbackCatalogue($fallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \LogicException
|
||||||
|
*/
|
||||||
|
public function testAddFallbackCatalogueWithFallbackCircularReference()
|
||||||
|
{
|
||||||
|
$fr = new MessageCatalogue('fr');
|
||||||
|
$en = new MessageCatalogue('en');
|
||||||
|
$es = new MessageCatalogue('es');
|
||||||
|
|
||||||
|
$fr->addFallbackCatalogue($en);
|
||||||
|
$es->addFallbackCatalogue($en);
|
||||||
|
$en->addFallbackCatalogue($fr);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @expectedException \LogicException
|
* @expectedException \LogicException
|
||||||
*/
|
*/
|
||||||
|
@ -178,10 +192,10 @@ class MessageCatalogueTest extends \PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals(array(), $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 is array');
|
$this->assertEquals(array(), $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 is array');
|
||||||
|
|
||||||
$catalogue->deleteMetadata('key2', 'messages');
|
$catalogue->deleteMetadata('key2', 'messages');
|
||||||
$this->assertEquals(null, $catalogue->getMetadata('key2', 'messages'), 'Metadata key2 should is deleted.');
|
$this->assertNull($catalogue->getMetadata('key2', 'messages'), 'Metadata key2 should is deleted.');
|
||||||
|
|
||||||
$catalogue->deleteMetadata('key2', 'domain');
|
$catalogue->deleteMetadata('key2', 'domain');
|
||||||
$this->assertEquals(null, $catalogue->getMetadata('key2', 'domain'), 'Metadata key2 should is deleted.');
|
$this->assertNull($catalogue->getMetadata('key2', 'domain'), 'Metadata key2 should is deleted.');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testMetadataMerge()
|
public function testMetadataMerge()
|
||||||
|
|
|
@ -425,8 +425,9 @@ EOF
|
||||||
$this->doLoadCatalogue($fallback);
|
$this->doLoadCatalogue($fallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
$current->addFallbackCatalogue($this->catalogues[$fallback]);
|
$fallbackCatalogue = new MessageCatalogue($fallback, $this->catalogues[$fallback]->all());
|
||||||
$current = $this->catalogues[$fallback];
|
$current->addFallbackCatalogue($fallbackCatalogue);
|
||||||
|
$current = $fallbackCatalogue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue