Merge branch '4.1'

* 4.1: (21 commits)
  [php_cs] disable fopen_flags
  [DI] fix error in dumped container
  [CS] Remove unused variables passed to closures
  [DI] fix dumping setters before their inlined instances
  [CS] Remove empty comment
  [CS] Enforces null type hint on last position in phpDocs
  [CS] Use combined assignment operators when possible
  Fix a typo in error messages
  Don't return early as this bypasses the auto exit feature
  [Console] Add missing null to input values allowed types
  [PHPUnitBridge] Fix microtime() format
  bumped Symfony version to 4.1.6
  updated VERSION for 4.1.5
  updated CHANGELOG for 4.1.5
  bumped Symfony version to 3.4.17
  updated VERSION for 3.4.16
  updated CHANGELOG for 3.4.16
  bumped Symfony version to 2.8.47
  update CONTRIBUTORS for 2.8.46
  updated VERSION for 2.8.46
  ...
This commit is contained in:
Nicolas Grekas 2018-10-02 14:43:31 +02:00
commit a9c90ca77a
73 changed files with 482 additions and 140 deletions

View File

@ -11,6 +11,7 @@ return PhpCsFixer\Config::create()
'@PHPUnit48Migration:risky' => true, '@PHPUnit48Migration:risky' => true,
'php_unit_no_expectation_annotation' => false, // part of `PHPUnitXYMigration:risky` ruleset, to be enabled when PHPUnit 4.x support will be dropped, as we don't want to rewrite exceptions handling twice 'php_unit_no_expectation_annotation' => false, // part of `PHPUnitXYMigration:risky` ruleset, to be enabled when PHPUnit 4.x support will be dropped, as we don't want to rewrite exceptions handling twice
'array_syntax' => array('syntax' => 'long'), 'array_syntax' => array('syntax' => 'long'),
'fopen_flags' => false,
'ordered_imports' => true, 'ordered_imports' => true,
'protected_to_private' => false, 'protected_to_private' => false,
// Part of @Symfony:risky in PHP-CS-Fixer 2.13.0. To be removed from the config file once upgrading // Part of @Symfony:risky in PHP-CS-Fixer 2.13.0. To be removed from the config file once upgrading

View File

@ -7,6 +7,49 @@ in 4.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 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.1.0...v4.1.1 To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v4.1.0...v4.1.1
* 4.1.5 (2018-09-30)
* bug #28636 [HttpFoundation] X-Accel-Mapping does not use HTTP key=value syntax (c960657)
* bug #28376 [TwigBundle] Fixed caching of templates in src/Resources/<BundleName>/views on cache warmup (yceruto)
* bug #28565 [HttpFoundation][Security] forward locale and format to subrequests (nicolas-grekas)
* bug #28561 [Cache] prevent getting older entries when the version key is evicted (nicolas-grekas)
* bug #28562 [HttpFoundation] fix hidding warnings from session handlers (nicolas-grekas)
* bug #28545 [Console] Send the right exit code to console.terminate listeners (mpdude)
* bug #28553 [Debug] Fix false-positive "MicroKernelTrait::loadRoutes()" method is considered internal" (nicolas-grekas)
* bug #28466 [Form] fail reverse transforming invalid RFC 3339 dates (xabbuh)
* bug #28540 [Intl] parse numbers terminated with decimal separator (xabbuh)
* bug #28548 [Console] Fixed boxed table style with colspan (ro0NL)
* bug #28433 [HttpFoundation] Allow reuse of Session between requests if ID did not change (tgalopin)
* bug #28508 [Form] forward false label option to nested types (xabbuh)
* bug #28471 [MonologBridge] Re-add option option to ignore empty context and extra data (mpdude)
* bug #28464 [Form] forward the invalid_message option in date types (xabbuh)
* bug #28524 [PhpUnitBridge] fix disabling DeprecationErrorHandler using phpunit.xml file (soerenbernstein)
* bug #28512 [DI] fix infinite loop involving self-references in decorated services (nicolas-grekas)
* bug #28507 [DI] fix dumping lazy services (nicolas-grekas)
* bug #28469 [Form][TwigBridge] fix not displaying labels when value is false (xabbuh)
* bug #28495 [PhpUnitBridge] Implement startTest rather than startTestSuite (greg0ire)
* bug #28480 [DI] Detect circular references with ChildDefinition parent (Seb33300)
* bug #28497 [VarDumper] Fix global dump function return value for PHP7 (patrickcarlohickman)
* bug #28499 [Ldap] Use shut up operator on connection errors at ldap_start_tls (Andras Debreczeni)
* bug #28372 [Form] Fix DateTimeType html5 input format (franzwilding, mcfedr)
* bug #28396 [Intl] Blacklist Eurozone and United Nations in Region Data Generator (gregurco)
* bug #28418 [FrameworkBundle] Register the messenger data collector only when the profiler is enabled (pierredup)
* bug #28393 [Console] fixed corrupt error output for unknown multibyte short option (downace)
* bug #28411 [Debug] fix detecting overriden final/internal methods implemented using traits (nicolas-grekas)
* bug #28404 [Controller][ServiceValueResolver] Making method access case insensitive (nicoweb)
* bug #28401 [Console] Fix SymfonyQuestionHelper::askQuestion() with choice value as default (chalasr)
* bug #28388 [DI] configure inlined services before injecting them when dumping the container (nicolas-grekas)
* bug #28377 fix fopen flags (SpacePossum)
* bug #27764 [TwigBundle] Fixed caching of templates in default path on cache warmup (yceruto)
* bug #28366 [DI] Fix dumping some complex service graphs (nicolas-grekas)
* bug #27970 [FileValidator] Format file size in validation message according to binaryFormat option (jfredon)
* bug #28029 [TwigBundle] remove cache warmers when Twig cache is disabled (xabbuh)
* bug #28322 [Workflow] Make sure we do not run the next transition on an updated state (Nyholm)
* bug #28344 [HttpKernel][FrameworkBundle] Fix escaping of serialized payloads passed to test clients (nicolas-grekas)
* bug #28183 [WebProfilerBundle] fix wrong url when base path is the index (ismail1432)
* bug #28334 [FWB][Messenger] Revert "Move commands-specifics to a compiler pass in FWB" (sroze)
* bug #28328 [Messenger][FrameworkBundle] Move commands-specifics to a compiler pass in FWB (sroze)
* 4.1.4 (2018-08-28) * 4.1.4 (2018-08-28)
* bug #28278 [HttpFoundation] Fix unprepared BinaryFileResponse sends empty file (wackymole) * bug #28278 [HttpFoundation] Fix unprepared BinaryFileResponse sends empty file (wackymole)

View File

@ -12,8 +12,8 @@ Symfony is the result of the work of many people who made the code better
- Christophe Coevoet (stof) - Christophe Coevoet (stof)
- Jordi Boggiano (seldaek) - Jordi Boggiano (seldaek)
- Victor Berchet (victor) - Victor Berchet (victor)
- Kévin Dunglas (dunglas)
- Robin Chalas (chalas_r) - Robin Chalas (chalas_r)
- Kévin Dunglas (dunglas)
- Johannes S (johannes) - Johannes S (johannes)
- Jakub Zalas (jakubzalas) - Jakub Zalas (jakubzalas)
- Maxime Steinhausser (ogizanagi) - Maxime Steinhausser (ogizanagi)
@ -23,54 +23,54 @@ Symfony is the result of the work of many people who made the code better
- Grégoire Pineau (lyrixx) - Grégoire Pineau (lyrixx)
- Hugo Hamon (hhamon) - Hugo Hamon (hhamon)
- Abdellatif Ait boudad (aitboudad) - Abdellatif Ait boudad (aitboudad)
- Romain Neutron (romain)
- Roland Franssen (ro0) - Roland Franssen (ro0)
- Romain Neutron (romain)
- Pascal Borreli (pborreli) - Pascal Borreli (pborreli)
- Wouter De Jong (wouterj) - Wouter De Jong (wouterj)
- Joseph Bielawski (stloyd) - Joseph Bielawski (stloyd)
- Karma Dordrak (drak) - Karma Dordrak (drak)
- Lukas Kahwe Smith (lsmith) - Lukas Kahwe Smith (lsmith)
- Samuel ROZE (sroze)
- Martin Hasoň (hason) - Martin Hasoň (hason)
- Jeremy Mikola (jmikola) - Jeremy Mikola (jmikola)
- Samuel ROZE (sroze)
- Jean-François Simon (jfsimon) - Jean-François Simon (jfsimon)
- Benjamin Eberlei (beberlei) - Benjamin Eberlei (beberlei)
- Igor Wiedler (igorw) - Igor Wiedler (igorw)
- Jules Pietri (heah) - Jules Pietri (heah)
- Eriksen Costa (eriksencosta) - Eriksen Costa (eriksencosta)
- Guilhem Niot (energetick)
- Yonel Ceruto (yonelceruto) - Yonel Ceruto (yonelceruto)
- Guilhem Niot (energetick)
- Sarah Khalil (saro0h) - Sarah Khalil (saro0h)
- Jonathan Wage (jwage) - Jonathan Wage (jwage)
- Hamza Amrouche (simperfit) - Hamza Amrouche (simperfit)
- Diego Saint Esteben (dosten) - Diego Saint Esteben (dosten)
- Iltar van der Berg (kjarli) - Iltar van der Berg (kjarli)
- Tobias Nyholm (tobias)
- Alexandre Salomé (alexandresalome) - Alexandre Salomé (alexandresalome)
- William Durand (couac) - William Durand (couac)
- ornicar - ornicar
- Francis Besset (francisbesset) - Francis Besset (francisbesset)
- Dany Maillard (maidmaid)
- stealth35 (stealth35) - stealth35 (stealth35)
- Alexander Mols (asm89) - Alexander Mols (asm89)
- Bulat Shakirzyanov (avalanche123) - Bulat Shakirzyanov (avalanche123)
- Dany Maillard (maidmaid)
- Peter Rehm (rpet)
- Matthias Pigulla (mpdude) - Matthias Pigulla (mpdude)
- Peter Rehm (rpet)
- Saša Stamenković (umpirsky) - Saša Stamenković (umpirsky)
- Kevin Bond (kbond)
- Tobias Nyholm (tobias)
- Pierre du Plessis (pierredup) - Pierre du Plessis (pierredup)
- Kevin Bond (kbond)
- Henrik Bjørnskov (henrikbjorn) - Henrik Bjørnskov (henrikbjorn)
- Miha Vrhovnik - Miha Vrhovnik
- Jérémy DERUSSÉ (jderusse)
- Diego Saint Esteben (dii3g0) - Diego Saint Esteben (dii3g0)
- Alexander M. Turek (derrabus) - Alexander M. Turek (derrabus)
- Jérémy DERUSSÉ (jderusse)
- Konstantin Kudryashov (everzet) - Konstantin Kudryashov (everzet)
- Bilal Amarni (bamarni) - Bilal Amarni (bamarni)
- Florin Patan (florinpatan) - Florin Patan (florinpatan)
- Gábor Egyed (1ed) - Gábor Egyed (1ed)
- Mathieu Piot (mpiot) - Mathieu Piot (mpiot)
- Michel Weimerskirch (mweimerskirch)
- Titouan Galopin (tgalopin) - Titouan Galopin (tgalopin)
- Michel Weimerskirch (mweimerskirch)
- Andrej Hudec (pulzarraider) - Andrej Hudec (pulzarraider)
- Eric Clemmons (ericclemmons) - Eric Clemmons (ericclemmons)
- Jáchym Toušek (enumag) - Jáchym Toušek (enumag)
@ -78,11 +78,11 @@ Symfony is the result of the work of many people who made the code better
- David Maicher (dmaicher) - David Maicher (dmaicher)
- Konstantin Myakshin (koc) - Konstantin Myakshin (koc)
- Christian Raue - Christian Raue
- Issei Murasawa (issei_m)
- Arnout Boks (aboks) - Arnout Boks (aboks)
- Deni - Deni
- Henrik Westphal (snc) - Henrik Westphal (snc)
- Dariusz Górecki (canni) - Dariusz Górecki (canni)
- Issei Murasawa (issei_m)
- Douglas Greenshields (shieldo) - Douglas Greenshields (shieldo)
- Vladimir Reznichenko (kalessil) - Vladimir Reznichenko (kalessil)
- Lee McDermott - Lee McDermott
@ -92,6 +92,7 @@ Symfony is the result of the work of many people who made the code better
- Daniel Holmes (dholmes) - Daniel Holmes (dholmes)
- Dariusz Ruminski - Dariusz Ruminski
- Toni Uebernickel (havvg) - Toni Uebernickel (havvg)
- Grégoire Paris (greg0ire)
- Bart van den Burg (burgov) - Bart van den Burg (burgov)
- Jordan Alliot (jalliot) - Jordan Alliot (jalliot)
- Jérôme Tamarelle (gromnan) - Jérôme Tamarelle (gromnan)
@ -99,14 +100,13 @@ Symfony is the result of the work of many people who made the code better
- Fran Moreno (franmomu) - Fran Moreno (franmomu)
- Antoine Hérault (herzult) - Antoine Hérault (herzult)
- Paráda József (paradajozsef) - Paráda József (paradajozsef)
- Grégoire Paris (greg0ire)
- Arnaud Le Blanc (arnaud-lb) - Arnaud Le Blanc (arnaud-lb)
- Maxime STEINHAUSSER - Maxime STEINHAUSSER
- Michal Piotrowski (eventhorizon) - Michal Piotrowski (eventhorizon)
- gadelat (gadelat)
- Tim Nagel (merk) - Tim Nagel (merk)
- Brice BERNARD (brikou) - Brice BERNARD (brikou)
- Valentin Udaltsov (vudaltsov) - Valentin Udaltsov (vudaltsov)
- gadelat (gadelat)
- Baptiste Clavié (talus) - Baptiste Clavié (talus)
- marc.weistroff - marc.weistroff
- lenar - lenar
@ -121,8 +121,8 @@ Symfony is the result of the work of many people who made the code better
- Joshua Thijssen - Joshua Thijssen
- David Buchmann (dbu) - David Buchmann (dbu)
- excelwebzone - excelwebzone
- Fabien Pennequin (fabienpennequin)
- Gordon Franke (gimler) - Gordon Franke (gimler)
- Fabien Pennequin (fabienpennequin)
- Eric GELOEN (gelo) - Eric GELOEN (gelo)
- Sebastiaan Stok (sstok) - Sebastiaan Stok (sstok)
- Lars Strojny (lstrojny) - Lars Strojny (lstrojny)
@ -132,6 +132,7 @@ Symfony is the result of the work of many people who made the code better
- Théo FIDRY (theofidry) - Théo FIDRY (theofidry)
- Robert Schönthal (digitalkaoz) - Robert Schönthal (digitalkaoz)
- Florian Lonqueu-Brochard (florianlb) - Florian Lonqueu-Brochard (florianlb)
- Chris Wilkinson (thewilkybarkid)
- Stefano Sala (stefano.sala) - Stefano Sala (stefano.sala)
- Jérôme Vasseur (jvasseur) - Jérôme Vasseur (jvasseur)
- Evgeniy (ewgraf) - Evgeniy (ewgraf)
@ -142,7 +143,6 @@ Symfony is the result of the work of many people who made the code better
- Sebastian Hörl (blogsh) - Sebastian Hörl (blogsh)
- Daniel Gomes (danielcsgomes) - Daniel Gomes (danielcsgomes)
- Hidenori Goto (hidenorigoto) - Hidenori Goto (hidenorigoto)
- Chris Wilkinson (thewilkybarkid)
- Arnaud Kleinpeter (nanocom) - Arnaud Kleinpeter (nanocom)
- Jannik Zschiesche (apfelbox) - Jannik Zschiesche (apfelbox)
- Guilherme Blanco (guilhermeblanco) - Guilherme Blanco (guilhermeblanco)
@ -168,10 +168,12 @@ Symfony is the result of the work of many people who made the code better
- Matthieu Ouellette-Vachon (maoueh) - Matthieu Ouellette-Vachon (maoueh)
- Michał Pipa (michal.pipa) - Michał Pipa (michal.pipa)
- Dawid Nowak - Dawid Nowak
- Gabriel Ostrolucký
- Amal Raghav (kertz) - Amal Raghav (kertz)
- Jonathan Ingram (jonathaningram) - Jonathan Ingram (jonathaningram)
- Artur Kotyrba - Artur Kotyrba
- GDIBass - GDIBass
- SpacePossum
- jeremyFreeAgent (Jérémy Romey) (jeremyfreeagent) - jeremyFreeAgent (Jérémy Romey) (jeremyfreeagent)
- James Halsall (jaitsu) - James Halsall (jaitsu)
- Matthieu Napoli (mnapoli) - Matthieu Napoli (mnapoli)
@ -185,17 +187,17 @@ Symfony is the result of the work of many people who made the code better
- Dorian Villet (gnutix) - Dorian Villet (gnutix)
- Sergey Linnik (linniksa) - Sergey Linnik (linniksa)
- Richard Miller (mr_r_miller) - Richard Miller (mr_r_miller)
- Gabriel Ostrolucký
- Mario A. Alvarez Garcia (nomack84) - Mario A. Alvarez Garcia (nomack84)
- Dennis Benkert (denderello) - Dennis Benkert (denderello)
- DQNEO - DQNEO
- SpacePossum
- Benjamin Dulau (dbenjamin) - Benjamin Dulau (dbenjamin)
- Florent Mata (fmata)
- Mathieu Lemoine (lemoinem) - Mathieu Lemoine (lemoinem)
- Thomas Calvet (fancyweb) - Thomas Calvet (fancyweb)
- Christian Schmidt - Christian Schmidt
- Andreas Hucks (meandmymonkey) - Andreas Hucks (meandmymonkey)
- Noel Guilbert (noel) - Noel Guilbert (noel)
- Yanick Witschi (toflar)
- Marek Štípek (maryo) - Marek Štípek (maryo)
- Stepan Anchugov (kix) - Stepan Anchugov (kix)
- bronze1man - bronze1man
@ -222,7 +224,6 @@ Symfony is the result of the work of many people who made the code better
- Michele Orselli (orso) - Michele Orselli (orso)
- Tom Van Looy (tvlooy) - Tom Van Looy (tvlooy)
- Sven Paulus (subsven) - Sven Paulus (subsven)
- Yanick Witschi (toflar)
- Rui Marinho (ruimarinho) - Rui Marinho (ruimarinho)
- Alessandro Chitolina - Alessandro Chitolina
- Eugene Wissner - Eugene Wissner
@ -233,6 +234,7 @@ Symfony is the result of the work of many people who made the code better
- Nikolay Labinskiy (e-moe) - Nikolay Labinskiy (e-moe)
- Marcel Beerta (mazen) - Marcel Beerta (mazen)
- Albert Casademont (acasademont) - Albert Casademont (acasademont)
- Pavel Batanov (scaytrase)
- Loïc Faugeron - Loïc Faugeron
- Hidde Wieringa (hiddewie) - Hidde Wieringa (hiddewie)
- Marco Pivetta (ocramius) - Marco Pivetta (ocramius)
@ -253,7 +255,6 @@ Symfony is the result of the work of many people who made the code better
- Ruben Gonzalez (rubenrua) - Ruben Gonzalez (rubenrua)
- Adam Prager (padam87) - Adam Prager (padam87)
- Benoît Burnichon (bburnichon) - Benoît Burnichon (bburnichon)
- Florent Mata (fmata)
- Roman Marintšenko (inori) - Roman Marintšenko (inori)
- Xavier Montaña Carreras (xmontana) - Xavier Montaña Carreras (xmontana)
- Mickaël Andrieu (mickaelandrieu) - Mickaël Andrieu (mickaelandrieu)
@ -284,12 +285,12 @@ Symfony is the result of the work of many people who made the code better
- Diego Agulló (aeoris) - Diego Agulló (aeoris)
- Andreas Schempp (aschempp) - Andreas Schempp (aschempp)
- jdhoek - jdhoek
- Pavel Batanov (scaytrase)
- Massimiliano Arione (garak) - Massimiliano Arione (garak)
- Bob den Otter (bopp) - Bob den Otter (bopp)
- Nikita Konstantinov - Nikita Konstantinov
- Wodor Wodorski - Wodor Wodorski
- Thomas Lallement (raziel057) - Thomas Lallement (raziel057)
- mcfedr (mcfedr)
- Giorgio Premi - Giorgio Premi
- Christian Schmidt - Christian Schmidt
- Beau Simensen (simensen) - Beau Simensen (simensen)
@ -313,6 +314,7 @@ Symfony is the result of the work of many people who made the code better
- Gary PEGEOT (gary-p) - Gary PEGEOT (gary-p)
- Manuel Kiessling (manuelkiessling) - Manuel Kiessling (manuelkiessling)
- Atsuhiro KUBO (iteman) - Atsuhiro KUBO (iteman)
- rudy onfroy (ronfroy)
- Andrew Moore (finewolf) - Andrew Moore (finewolf)
- Bertrand Zuchuat (garfield-fr) - Bertrand Zuchuat (garfield-fr)
- Gabor Toth (tgabi333) - Gabor Toth (tgabi333)
@ -435,6 +437,7 @@ Symfony is the result of the work of many people who made the code better
- Jan Schumann - Jan Schumann
- Niklas Fiekas - Niklas Fiekas
- Markus Bachmann (baachi) - Markus Bachmann (baachi)
- Jan Schädlich
- lancergr - lancergr
- Zan Baldwin - Zan Baldwin
- Mihai Stancu - Mihai Stancu
@ -453,6 +456,7 @@ Symfony is the result of the work of many people who made the code better
- Boris Vujicic (boris.vujicic) - Boris Vujicic (boris.vujicic)
- Chris Sedlmayr (catchamonkey) - Chris Sedlmayr (catchamonkey)
- Mateusz Sip (mateusz_sip) - Mateusz Sip (mateusz_sip)
- Remon van de Kamp
- Seb Koelen - Seb Koelen
- Christoph Mewes (xrstf) - Christoph Mewes (xrstf)
- Vitaliy Tverdokhlib (vitaliytv) - Vitaliy Tverdokhlib (vitaliytv)
@ -471,6 +475,7 @@ Symfony is the result of the work of many people who made the code better
- Zander Baldwin - Zander Baldwin
- Adam Harvey - Adam Harvey
- Anton Bakai - Anton Bakai
- Rhodri Pugh (rodnaph)
- Alex Bakhturin - Alex Bakhturin
- insekticid - insekticid
- Alexander Obuhovich (aik099) - Alexander Obuhovich (aik099)
@ -501,12 +506,14 @@ Symfony is the result of the work of many people who made the code better
- Roy Van Ginneken (rvanginneken) - Roy Van Ginneken (rvanginneken)
- ondrowan - ondrowan
- Barry vd. Heuvel (barryvdh) - Barry vd. Heuvel (barryvdh)
- Sébastien Alfaiate (seb33300)
- Evan S Kaufman (evanskaufman) - Evan S Kaufman (evanskaufman)
- mcben - mcben
- Jérôme Vieilledent (lolautruche) - Jérôme Vieilledent (lolautruche)
- Maks Slesarenko - Maks Slesarenko
- Filip Procházka (fprochazka) - Filip Procházka (fprochazka)
- mmoreram - mmoreram
- Smaine Milianni (ismail1432)
- Markus Lanthaler (lanthaler) - Markus Lanthaler (lanthaler)
- Remi Collet - Remi Collet
- Vicent Soria Durá (vicentgodella) - Vicent Soria Durá (vicentgodella)
@ -522,6 +529,7 @@ Symfony is the result of the work of many people who made the code better
- Erik Trapman (eriktrapman) - Erik Trapman (eriktrapman)
- De Cock Xavier (xdecock) - De Cock Xavier (xdecock)
- Almog Baku (almogbaku) - Almog Baku (almogbaku)
- George Mponos (gmponos)
- Scott Arciszewski - Scott Arciszewski
- Xavier HAUSHERR - Xavier HAUSHERR
- Norbert Orzechowicz (norzechowicz) - Norbert Orzechowicz (norzechowicz)
@ -594,6 +602,7 @@ Symfony is the result of the work of many people who made the code better
- Nahuel Cuesta (ncuesta) - Nahuel Cuesta (ncuesta)
- Chris Boden (cboden) - Chris Boden (cboden)
- Christophe Villeger (seragan) - Christophe Villeger (seragan)
- Julien Fredon
- Bob van de Vijver (bobvandevijver) - Bob van de Vijver (bobvandevijver)
- Stefan Gehrig (sgehrig) - Stefan Gehrig (sgehrig)
- Hany el-Kerdany - Hany el-Kerdany
@ -607,6 +616,7 @@ Symfony is the result of the work of many people who made the code better
- Javier López (loalf) - Javier López (loalf)
- Reinier Kip - Reinier Kip
- Geoffrey Brier (geoffrey-brier) - Geoffrey Brier (geoffrey-brier)
- Vlad Gregurco (vgregurco)
- Vladimir Tsykun - Vladimir Tsykun
- Dustin Dobervich (dustin10) - Dustin Dobervich (dustin10)
- dantleech - dantleech
@ -618,7 +628,6 @@ Symfony is the result of the work of many people who made the code better
- Kamil Kokot (pamil) - Kamil Kokot (pamil)
- Max Grigorian (maxakawizard) - Max Grigorian (maxakawizard)
- DerManoMann - DerManoMann
- mcfedr (mcfedr)
- Rostyslav Kinash - Rostyslav Kinash
- Maciej Malarz (malarzm) - Maciej Malarz (malarzm)
- Pascal Luna (skalpa) - Pascal Luna (skalpa)
@ -697,7 +706,6 @@ Symfony is the result of the work of many people who made the code better
- Indra Gunawan (guind) - Indra Gunawan (guind)
- Peter Ward - Peter Ward
- Davide Borsatto (davide.borsatto) - Davide Borsatto (davide.borsatto)
- Rhodri Pugh (rodnaph)
- Julien DIDIER (juliendidier) - Julien DIDIER (juliendidier)
- Dominik Ritter (dritter) - Dominik Ritter (dritter)
- Sebastian Grodzicki (sgrodzicki) - Sebastian Grodzicki (sgrodzicki)
@ -733,13 +741,11 @@ Symfony is the result of the work of many people who made the code better
- Nykopol (nykopol) - Nykopol (nykopol)
- Jordan Deitch - Jordan Deitch
- Casper Valdemar Poulsen - Casper Valdemar Poulsen
- Remon van de Kamp
- Josiah (josiah) - Josiah (josiah)
- Joschi Kuphal - Joschi Kuphal
- John Bohn (jbohn) - John Bohn (jbohn)
- Marc Morera (mmoreram) - Marc Morera (mmoreram)
- Saif Eddin Gmati (azjezz) - Saif Eddin Gmati (azjezz)
- Smaine Milianni (ismail1432)
- Andrew Hilobok (hilobok) - Andrew Hilobok (hilobok)
- Noah Heck (myesain) - Noah Heck (myesain)
- Christian Soronellas (theunic) - Christian Soronellas (theunic)
@ -752,7 +758,6 @@ Symfony is the result of the work of many people who made the code better
- Benoit Lévêque (benoit_leveque) - Benoit Lévêque (benoit_leveque)
- Jeroen Fiege (fieg) - Jeroen Fiege (fieg)
- Krzysiek Łabuś - Krzysiek Łabuś
- George Mponos (gmponos)
- Xavier Lacot (xavier) - Xavier Lacot (xavier)
- possum - possum
- Denis Zunke (donalberto) - Denis Zunke (donalberto)
@ -914,14 +919,16 @@ Symfony is the result of the work of many people who made the code better
- Pieter - Pieter
- Michael Tibben - Michael Tibben
- Billie Thompson - Billie Thompson
- Ganesh Chandrasekaran
- Sander Marechal - Sander Marechal
- Franz Wilding (killerpoke)
- ProgMiner - ProgMiner
- Oleg Golovakhin (doc_tr) - Oleg Golovakhin (doc_tr)
- Icode4Food (icode4food) - Icode4Food (icode4food)
- Radosław Benkel - Radosław Benkel
- kevin.nadin
- jean pasqualini (darkilliant) - jean pasqualini (darkilliant)
- Ross Motley (rossmotley) - Ross Motley (rossmotley)
- Julien Fredon
- ttomor - ttomor
- Mei Gwilym (meigwilym) - Mei Gwilym (meigwilym)
- Michael H. Arieli (excelwebzone) - Michael H. Arieli (excelwebzone)
@ -932,6 +939,8 @@ Symfony is the result of the work of many people who made the code better
- Sander Coolen (scoolen) - Sander Coolen (scoolen)
- Nicolas Le Goff (nlegoff) - Nicolas Le Goff (nlegoff)
- Ben Oman - Ben Oman
- Guilhem N (guilhemn)
- Chris de Kok
- Andreas Kleemann - Andreas Kleemann
- Manuele Menozzi - Manuele Menozzi
- Anton Babenko (antonbabenko) - Anton Babenko (antonbabenko)
@ -1047,8 +1056,10 @@ Symfony is the result of the work of many people who made the code better
- Alexander Cheprasov - Alexander Cheprasov
- Rodrigo Díez Villamuera (rodrigodiez) - Rodrigo Díez Villamuera (rodrigodiez)
- e-ivanov - e-ivanov
- Roberto Espinoza (respinoza)
- Einenlum - Einenlum
- Jochen Bayer (jocl) - Jochen Bayer (jocl)
- Patrick Carlo-Hickman
- Alex Bowers - Alex Bowers
- Jeremy Bush - Jeremy Bush
- wizhippo - wizhippo
@ -1228,6 +1239,7 @@ Symfony is the result of the work of many people who made the code better
- caponica - caponica
- Matt Daum (daum) - Matt Daum (daum)
- Alberto Pirovano (geezmo) - Alberto Pirovano (geezmo)
- Nicolas LEFEVRE (nicoweb)
- Pete Mitchell (peterjmit) - Pete Mitchell (peterjmit)
- Tom Corrigan (tomcorrigan) - Tom Corrigan (tomcorrigan)
- Luis Galeas - Luis Galeas
@ -1273,6 +1285,7 @@ Symfony is the result of the work of many people who made the code better
- Jon Gotlin (jongotlin) - Jon Gotlin (jongotlin)
- Michael Dowling (mtdowling) - Michael Dowling (mtdowling)
- Karlos Presumido (oneko) - Karlos Presumido (oneko)
- Sylvain Fabre (sylfabre)
- Thomas Counsell - Thomas Counsell
- BilgeXA - BilgeXA
- r1pp3rj4ck - r1pp3rj4ck
@ -1318,6 +1331,7 @@ Symfony is the result of the work of many people who made the code better
- Andrew (drew) - Andrew (drew)
- kor3k kor3k (kor3k) - kor3k kor3k (kor3k)
- Stelian Mocanita (stelian) - Stelian Mocanita (stelian)
- Justin (wackymole)
- Flavian (2much) - Flavian (2much)
- Gautier Deuette - Gautier Deuette
- mike - mike
@ -1361,6 +1375,7 @@ Symfony is the result of the work of many people who made the code better
- Jody Mickey (jwmickey) - Jody Mickey (jwmickey)
- Przemysław Piechota (kibao) - Przemysław Piechota (kibao)
- Leonid Terentyev (li0n) - Leonid Terentyev (li0n)
- Martynas Sudintas (martiis)
- ryunosuke - ryunosuke
- zenmate - zenmate
- victoria - victoria
@ -1385,7 +1400,6 @@ Symfony is the result of the work of many people who made the code better
- Vasily Khayrulin (sirian) - Vasily Khayrulin (sirian)
- Stefan Koopmanschap (skoop) - Stefan Koopmanschap (skoop)
- Stefan Hüsges (tronsha) - Stefan Hüsges (tronsha)
- Vlad Gregurco (vgregurco)
- Jake Bishop (yakobeyak) - Jake Bishop (yakobeyak)
- Dan Blows - Dan Blows
- Matt Wells - Matt Wells
@ -1440,13 +1454,16 @@ Symfony is the result of the work of many people who made the code better
- loru88 - loru88
- Romain Dorgueil - Romain Dorgueil
- Christopher Parotat - Christopher Parotat
- me_shaon
- 蝦米 - 蝦米
- Grayson Koonce (breerly) - Grayson Koonce (breerly)
- Karim Cassam Chenaï (ka) - Karim Cassam Chenaï (ka)
- Maksym Slesarenko (maksym_slesarenko)
- Michal Kurzeja (mkurzeja) - Michal Kurzeja (mkurzeja)
- Nicolas Bastien (nicolas_bastien) - Nicolas Bastien (nicolas_bastien)
- Denis (yethee) - Denis (yethee)
- Andrew Zhilin (zhil) - Andrew Zhilin (zhil)
- Sjors Ottjes
- Andy Stanberry - Andy Stanberry
- Felix Marezki - Felix Marezki
- Normunds - Normunds
@ -1458,6 +1475,7 @@ Symfony is the result of the work of many people who made the code better
- Pavel.Batanov - Pavel.Batanov
- avi123 - avi123
- alsar - alsar
- downace
- Aarón Nieves Fernández - Aarón Nieves Fernández
- Mike Meier - Mike Meier
- Kirill Saksin - Kirill Saksin
@ -1484,7 +1502,6 @@ Symfony is the result of the work of many people who made the code better
- Milos Colakovic (project2481) - Milos Colakovic (project2481)
- Rénald Casagraude (rcasagraude) - Rénald Casagraude (rcasagraude)
- Robin Duval (robin-duval) - Robin Duval (robin-duval)
- rudy onfroy (ronfroy)
- Grinbergs Reinis (shima5) - Grinbergs Reinis (shima5)
- Artem Lopata (bumz) - Artem Lopata (bumz)
- Nicole Cordes - Nicole Cordes
@ -1517,6 +1534,7 @@ Symfony is the result of the work of many people who made the code better
- Sam Ward - Sam Ward
- Walther Lalk - Walther Lalk
- Adam - Adam
- Sören Bernstein
- devel - devel
- taiiiraaa - taiiiraaa
- Trevor Suarez - Trevor Suarez
@ -1597,6 +1615,7 @@ Symfony is the result of the work of many people who made the code better
- Marin Nicolae - Marin Nicolae
- Alessandro Loffredo - Alessandro Loffredo
- Ian Phillips - Ian Phillips
- Marco Lipparini
- Haritz - Haritz
- Matthieu Prat - Matthieu Prat
- Ion Bazan - Ion Bazan
@ -1741,6 +1760,7 @@ Symfony is the result of the work of many people who made the code better
- Antonio Angelino - Antonio Angelino
- Matt Fields - Matt Fields
- Niklas Keller - Niklas Keller
- Andras Debreczeni
- Vladimir Sazhin - Vladimir Sazhin
- Tomas Kmieliauskas - Tomas Kmieliauskas
- Billie Thompson - Billie Thompson
@ -1772,6 +1792,7 @@ Symfony is the result of the work of many people who made the code better
- n-aleha - n-aleha
- Anatol Belski - Anatol Belski
- Şəhriyar İmanov - Şəhriyar İmanov
- Alexis BOYER
- Kaipi Yann - Kaipi Yann
- Sam Williams - Sam Williams
- Guillaume Aveline - Guillaume Aveline
@ -1897,6 +1918,7 @@ Symfony is the result of the work of many people who made the code better
- Arash Tabriziyan (ghost098) - Arash Tabriziyan (ghost098)
- ibasaw (ibasaw) - ibasaw (ibasaw)
- Vladislav Krupenkin (ideea) - Vladislav Krupenkin (ideea)
- Ilija Tovilo (ilijatovilo)
- Peter Orosz (ill_logical) - Peter Orosz (ill_logical)
- Imangazaliev Muhammad (imangazaliev) - Imangazaliev Muhammad (imangazaliev)
- j0k (j0k) - j0k (j0k)
@ -1944,7 +1966,6 @@ Symfony is the result of the work of many people who made the code better
- Bart Ruysseveldt (ruyss) - Bart Ruysseveldt (ruyss)
- Sascha Dens (saschadens) - Sascha Dens (saschadens)
- scourgen hung (scourgen) - scourgen hung (scourgen)
- Sébastien Alfaiate (seb33300)
- Sebastian Busch (sebu) - Sebastian Busch (sebu)
- Sepehr Lajevardi (sepehr) - Sepehr Lajevardi (sepehr)
- André Filipe Gonçalves Neves (seven) - André Filipe Gonçalves Neves (seven)

View File

@ -444,7 +444,7 @@ abstract class AbstractDoctrineExtension extends Extension
/** /**
* Search for a manager that is declared as 'auto_mapping' = true. * Search for a manager that is declared as 'auto_mapping' = true.
* *
* @return null|string The name of the manager. If no one manager is found, returns null * @return string|null The name of the manager. If no one manager is found, returns null
* *
* @throws \LogicException * @throws \LogicException
*/ */

View File

@ -43,7 +43,7 @@ class DoctrineChoiceLoader implements ChoiceLoaderInterface
* @param ObjectManager $manager The object manager * @param ObjectManager $manager The object manager
* @param string $class The class name of the loaded objects * @param string $class The class name of the loaded objects
* @param IdReader $idReader The reader for the object IDs * @param IdReader $idReader The reader for the object IDs
* @param null|EntityLoaderInterface $objectLoader The objects loader * @param EntityLoaderInterface|null $objectLoader The objects loader
*/ */
public function __construct(ObjectManager $manager, string $class, IdReader $idReader = null, EntityLoaderInterface $objectLoader = null) public function __construct(ObjectManager $manager, string $class, IdReader $idReader = null, EntityLoaderInterface $objectLoader = null)
{ {

View File

@ -67,7 +67,7 @@ class ClockMock
return self::$now; return self::$now;
} }
return sprintf('%0.6f %d', self::$now - (int) self::$now, (int) self::$now); return sprintf('%0.6f00 %d', self::$now - (int) self::$now, (int) self::$now);
} }
public static function date($format, $timestamp = null) public static function date($format, $timestamp = null)

View File

@ -44,7 +44,7 @@ class ClockMockTest extends TestCase
public function testMicrotime() public function testMicrotime()
{ {
$this->assertSame('0.125000 1234567890', microtime()); $this->assertSame('0.12500000 1234567890', microtime());
} }
public function testMicrotimeAsFloat() public function testMicrotimeAsFloat()

View File

@ -106,7 +106,7 @@ class WorkflowExtension extends AbstractExtension
* Returns the metadata for a specific subject. * Returns the metadata for a specific subject.
* *
* @param object $subject A subject * @param object $subject A subject
* @param null|string|Transition $metadataSubject Use null to get workflow metadata * @param string|Transition|null $metadataSubject Use null to get workflow metadata
* Use a string (the place name) to get place metadata * Use a string (the place name) to get place metadata
* Use a Transition instance to get transition metadata * Use a Transition instance to get transition metadata
*/ */

View File

@ -115,6 +115,6 @@ class GuardAuthenticationFactory implements SecurityFactoryInterface
} }
// we have multiple entry points - we must ask them to configure one // we have multiple entry points - we must ask them to configure one
throw new \LogicException(sprintf('Because you have multiple guard configurators, you need to set the "guard.entry_point" key to one of your configurators (%s)', implode(', ', $authenticatorIds))); throw new \LogicException(sprintf('Because you have multiple guard authenticators, you need to set the "guard.entry_point" key to one of your authenticators (%s)', implode(', ', $authenticatorIds)));
} }
} }

View File

@ -477,7 +477,7 @@ abstract class CompleteConfigurationTest extends TestCase
protected function getContainer($file) protected function getContainer($file)
{ {
$file = $file.'.'.$this->getFileExtension(); $file .= '.'.$this->getFileExtension();
$container = new ContainerBuilder(); $container = new ContainerBuilder();
$security = new SecurityExtension(); $security = new SecurityExtension();

View File

@ -159,8 +159,6 @@ class Application
} else { } else {
$exitCode = 1; $exitCode = 1;
} }
return $exitCode;
} finally { } finally {
// if the exception handler changed, keep it // if the exception handler changed, keep it
// otherwise, unregister $renderException // otherwise, unregister $renderException

View File

@ -150,7 +150,7 @@ class Command
* execute() method, you set the code to execute by passing * execute() method, you set the code to execute by passing
* a Closure to the setCode() method. * a Closure to the setCode() method.
* *
* @return null|int null or 0 if everything went fine, or an error code * @return int|null null or 0 if everything went fine, or an error code
* *
* @throws LogicException When this abstract method is not implemented * @throws LogicException When this abstract method is not implemented
* *

View File

@ -89,7 +89,7 @@ class QuestionHelper extends Helper
/** /**
* Asks the question to the user. * Asks the question to the user.
* *
* @return bool|mixed|null|string * @return bool|mixed|string|null
* *
* @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden * @throws RuntimeException In case the fallback is deactivated and the response cannot be hidden
*/ */

View File

@ -31,10 +31,10 @@ class InputArgument
private $description; private $description;
/** /**
* @param string $name The argument name * @param string $name The argument name
* @param int $mode The argument mode: self::REQUIRED or self::OPTIONAL * @param int|null $mode The argument mode: self::REQUIRED or self::OPTIONAL
* @param string $description A description text * @param string $description A description text
* @param mixed $default The default value (for self::OPTIONAL mode only) * @param string|string[]|null $default The default value (for self::OPTIONAL mode only)
* *
* @throws InvalidArgumentException When argument mode is not valid * @throws InvalidArgumentException When argument mode is not valid
*/ */
@ -86,7 +86,7 @@ class InputArgument
/** /**
* Sets the default value. * Sets the default value.
* *
* @param string|string[] $default The default value * @param string|string[]|null $default The default value
* *
* @throws LogicException When incorrect default value is given * @throws LogicException When incorrect default value is given
*/ */
@ -110,7 +110,7 @@ class InputArgument
/** /**
* Returns the default value. * Returns the default value.
* *
* @return string|string[] The default value * @return string|string[]|null The default value
*/ */
public function getDefault() public function getDefault()
{ {

View File

@ -85,7 +85,7 @@ interface InputInterface
* *
* @param string $name The argument name * @param string $name The argument name
* *
* @return string|string[] The argument value * @return string|string[]|null The argument value
* *
* @throws InvalidArgumentException When argument given doesn't exist * @throws InvalidArgumentException When argument given doesn't exist
*/ */
@ -94,8 +94,8 @@ interface InputInterface
/** /**
* Sets an argument value by name. * Sets an argument value by name.
* *
* @param string $name The argument name * @param string $name The argument name
* @param string|string[] $value The argument value * @param string|string[]|null $value The argument value
* *
* @throws InvalidArgumentException When argument given doesn't exist * @throws InvalidArgumentException When argument given doesn't exist
*/ */
@ -122,7 +122,7 @@ interface InputInterface
* *
* @param string $name The option name * @param string $name The option name
* *
* @return string|string[]|bool The option value * @return string|string[]|bool|null The option value
* *
* @throws InvalidArgumentException When option given doesn't exist * @throws InvalidArgumentException When option given doesn't exist
*/ */
@ -131,8 +131,8 @@ interface InputInterface
/** /**
* Sets an option value by name. * Sets an option value by name.
* *
* @param string $name The option name * @param string $name The option name
* @param string|string[]|bool $value The option value * @param string|string[]|bool|null $value The option value
* *
* @throws InvalidArgumentException When option given doesn't exist * @throws InvalidArgumentException When option given doesn't exist
*/ */

View File

@ -33,11 +33,11 @@ class InputOption
private $description; private $description;
/** /**
* @param string $name The option name * @param string $name The option name
* @param string|array $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts * @param string|array $shortcut The shortcuts, can be null, a string of shortcuts delimited by | or an array of shortcuts
* @param int $mode The option mode: One of the VALUE_* constants * @param int|null $mode The option mode: One of the VALUE_* constants
* @param string $description A description text * @param string $description A description text
* @param mixed $default The default value (must be null for self::VALUE_NONE) * @param string|string[]|bool|null $default The default value (must be null for self::VALUE_NONE)
* *
* @throws InvalidArgumentException If option mode is invalid or incompatible * @throws InvalidArgumentException If option mode is invalid or incompatible
*/ */
@ -149,7 +149,7 @@ class InputOption
/** /**
* Sets the default value. * Sets the default value.
* *
* @param string|string[]|bool $default The default value * @param string|string[]|bool|null $default The default value
* *
* @throws LogicException When incorrect default value is given * @throws LogicException When incorrect default value is given
*/ */
@ -173,7 +173,7 @@ class InputOption
/** /**
* Returns the default value. * Returns the default value.
* *
* @return string|string[]|bool The default value * @return string|string[]|bool|null The default value
*/ */
public function getDefault() public function getDefault()
{ {

View File

@ -117,7 +117,7 @@ class Question
/** /**
* Gets values for the autocompleter. * Gets values for the autocompleter.
* *
* @return null|iterable * @return iterable|null
*/ */
public function getAutocompleterValues() public function getAutocompleterValues()
{ {
@ -127,7 +127,7 @@ class Question
/** /**
* Sets values for the autocompleter. * Sets values for the autocompleter.
* *
* @param null|iterable $values * @param iterable|null $values
* *
* @return $this * @return $this
* *
@ -156,7 +156,7 @@ class Question
/** /**
* Sets a validator for the question. * Sets a validator for the question.
* *
* @param null|callable $validator * @param callable|null $validator
* *
* @return $this * @return $this
*/ */
@ -170,7 +170,7 @@ class Question
/** /**
* Gets the validator for the question. * Gets the validator for the question.
* *
* @return null|callable * @return callable|null
*/ */
public function getValidator() public function getValidator()
{ {
@ -182,7 +182,7 @@ class Question
* *
* Null means an unlimited number of attempts. * Null means an unlimited number of attempts.
* *
* @param null|int $attempts * @param int|null $attempts
* *
* @return $this * @return $this
* *
@ -204,7 +204,7 @@ class Question
* *
* Null means an unlimited number of attempts. * Null means an unlimited number of attempts.
* *
* @return null|int * @return int|null
*/ */
public function getMaxAttempts() public function getMaxAttempts()
{ {

View File

@ -991,8 +991,7 @@ class ApplicationTest extends TestCase
// We can assume here that some other test asserts that the event is dispatched at all // We can assume here that some other test asserts that the event is dispatched at all
$dispatcher = new EventDispatcher(); $dispatcher = new EventDispatcher();
$self = $this; $dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
$dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use ($self, &$passedRightValue) {
$passedRightValue = (4 === $event->getExitCode()); $passedRightValue = (4 === $event->getExitCode());
}); });
@ -1031,8 +1030,7 @@ class ApplicationTest extends TestCase
// We can assume here that some other test asserts that the event is dispatched at all // We can assume here that some other test asserts that the event is dispatched at all
$dispatcher = new EventDispatcher(); $dispatcher = new EventDispatcher();
$self = $this; $dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
$dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use ($self, &$passedRightValue) {
$passedRightValue = (1 === $event->getExitCode()); $passedRightValue = (1 === $event->getExitCode());
}); });

View File

@ -37,7 +37,7 @@ class ElementNode extends AbstractNode
} }
/** /**
* @return null|string * @return string|null
*/ */
public function getNamespace() public function getNamespace()
{ {
@ -45,7 +45,7 @@ class ElementNode extends AbstractNode
} }
/** /**
* @return null|string * @return string|null
*/ */
public function getElement() public function getElement()
{ {

View File

@ -142,7 +142,7 @@ class TokenStream
/** /**
* Returns nex identifier or star delimiter token. * Returns nex identifier or star delimiter token.
* *
* @return null|string The identifier token value or null if star found * @return string|null The identifier token value or null if star found
* *
* @throws SyntaxErrorException If next token is not an identifier or a star delimiter * @throws SyntaxErrorException If next token is not an identifier or a star delimiter
*/ */

View File

@ -919,7 +919,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
* an autowired definition. * an autowired definition.
* *
* @param string $id The service identifier * @param string $id The service identifier
* @param null|string $class The service class * @param string|null $class The service class
* *
* @return Definition The created definition * @return Definition The created definition
*/ */

View File

@ -125,8 +125,8 @@ class Definition
/** /**
* Sets the service that this service is decorating. * Sets the service that this service is decorating.
* *
* @param null|string $id The decorated service id, use null to remove decoration * @param string|null $id The decorated service id, use null to remove decoration
* @param null|string $renamedId The new decorated service id * @param string|null $renamedId The new decorated service id
* @param int $priority The priority of decoration * @param int $priority The priority of decoration
* *
* @return $this * @return $this
@ -153,7 +153,7 @@ class Definition
/** /**
* Gets the service that this service is decorating. * Gets the service that this service is decorating.
* *
* @return null|array An array composed of the decorated service id, the new id for it and the priority of decoration, null if no service is decorated * @return array|null An array composed of the decorated service id, the new id for it and the priority of decoration, null if no service is decorated
*/ */
public function getDecoratedService() public function getDecoratedService()
{ {

View File

@ -762,8 +762,9 @@ EOTXT
$code = ''; $code = '';
$arguments = array($definition->getProperties(), $definition->getMethodCalls(), $definition->getConfigurator()); $arguments = array($definition->getProperties(), $definition->getMethodCalls(), $definition->getConfigurator());
$hasSelfRef = $this->addInlineVariables($code, $tail, $id, $arguments, false) || $hasSelfRef; $hasSelfRef = $this->addInlineVariables($code, $code, $id, $arguments, false) || $hasSelfRef;
$code .= '' !== $code ? "\n" : '';
$code .= $this->addServiceProperties($definition, $name); $code .= $this->addServiceProperties($definition, $name);
$code .= $this->addServiceMethodCalls($definition, $name); $code .= $this->addServiceMethodCalls($definition, $name);
$code .= $this->addServiceConfigurator($definition, $name); $code .= $this->addServiceConfigurator($definition, $name);

View File

@ -18,8 +18,8 @@ trait DecorateTrait
/** /**
* Sets the service that this service is decorating. * Sets the service that this service is decorating.
* *
* @param null|string $id The decorated service id, use null to remove decoration * @param string|null $id The decorated service id, use null to remove decoration
* @param null|string $renamedId The new decorated service id * @param string|null $renamedId The new decorated service id
* @param int $priority The priority of decoration * @param int $priority The priority of decoration
* *
* @return $this * @return $this

View File

@ -1359,6 +1359,9 @@ class ContainerBuilderTest extends TestCase
$manager = $container->get('manager2'); $manager = $container->get('manager2');
$this->assertEquals(new \stdClass(), $manager); $this->assertEquals(new \stdClass(), $manager);
$foo6 = $container->get('foo6');
$this->assertEquals((object) array('bar6' => (object) array()), $foo6);
} }
public function provideAlmostCircular() public function provideAlmostCircular()

View File

@ -877,6 +877,9 @@ class PhpDumperTest extends TestCase
$manager = $container->get('manager2'); $manager = $container->get('manager2');
$this->assertEquals(new \stdClass(), $manager); $this->assertEquals(new \stdClass(), $manager);
$foo6 = $container->get('foo6');
$this->assertEquals((object) array('bar6' => (object) array()), $foo6);
} }
public function provideAlmostCircular() public function provideAlmostCircular()

View File

@ -101,4 +101,18 @@ $container->register('dispatcher2', 'stdClass')->setPublic($public)
$container->register('subscriber2', 'stdClass')->setPublic(false) $container->register('subscriber2', 'stdClass')->setPublic(false)
->addArgument(new Reference('manager2')); ->addArgument(new Reference('manager2'));
// private service involved in a loop
$container->register('foo6', 'stdClass')
->setPublic(true)
->setProperty('bar6', new Reference('bar6'));
$container->register('bar6', 'stdClass')
->setPublic(false)
->addArgument(new Reference('foo6'));
$container->register('baz6', 'stdClass')
->setPublic(true)
->setProperty('bar6', new Reference('bar6'));
return $container; return $container;

View File

@ -25,11 +25,13 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
$this->methodMap = array( $this->methodMap = array(
'bar2' => 'getBar2Service', 'bar2' => 'getBar2Service',
'bar3' => 'getBar3Service', 'bar3' => 'getBar3Service',
'baz6' => 'getBaz6Service',
'connection' => 'getConnectionService', 'connection' => 'getConnectionService',
'connection2' => 'getConnection2Service', 'connection2' => 'getConnection2Service',
'foo' => 'getFooService', 'foo' => 'getFooService',
'foo2' => 'getFoo2Service', 'foo2' => 'getFoo2Service',
'foo5' => 'getFoo5Service', 'foo5' => 'getFoo5Service',
'foo6' => 'getFoo6Service',
'foobar4' => 'getFoobar4Service', 'foobar4' => 'getFoobar4Service',
'logger' => 'getLoggerService', 'logger' => 'getLoggerService',
'manager' => 'getManagerService', 'manager' => 'getManagerService',
@ -57,6 +59,7 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true, 'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true,
'bar' => true, 'bar' => true,
'bar5' => true, 'bar5' => true,
'bar6' => true,
'config' => true, 'config' => true,
'config2' => true, 'config2' => true,
'dispatcher' => true, 'dispatcher' => true,
@ -100,6 +103,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
return $instance; return $instance;
} }
/**
* Gets the public 'baz6' shared service.
*
* @return \stdClass
*/
protected function getBaz6Service()
{
$this->services['baz6'] = $instance = new \stdClass();
$instance->bar6 = ($this->privates['bar6'] ?? $this->getBar6Service());
return $instance;
}
/** /**
* Gets the public 'connection' shared service. * Gets the public 'connection' shared service.
* *
@ -196,6 +213,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
return $instance; return $instance;
} }
/**
* Gets the public 'foo6' shared service.
*
* @return \stdClass
*/
protected function getFoo6Service()
{
$this->services['foo6'] = $instance = new \stdClass();
$instance->bar6 = ($this->privates['bar6'] ?? $this->getBar6Service());
return $instance;
}
/** /**
* Gets the public 'foobar4' shared service. * Gets the public 'foobar4' shared service.
* *
@ -279,4 +310,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
return $this->services['subscriber'] = new \stdClass($a); return $this->services['subscriber'] = new \stdClass($a);
} }
/**
* Gets the private 'bar6' shared service.
*
* @return \stdClass
*/
protected function getBar6Service()
{
$a = ($this->services['foo6'] ?? $this->getFoo6Service());
if (isset($this->privates['bar6'])) {
return $this->privates['bar6'];
}
return $this->privates['bar6'] = new \stdClass($a);
}
} }

View File

@ -26,6 +26,7 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
'bar' => 'getBarService', 'bar' => 'getBarService',
'bar3' => 'getBar3Service', 'bar3' => 'getBar3Service',
'bar5' => 'getBar5Service', 'bar5' => 'getBar5Service',
'baz6' => 'getBaz6Service',
'connection' => 'getConnectionService', 'connection' => 'getConnectionService',
'connection2' => 'getConnection2Service', 'connection2' => 'getConnection2Service',
'dispatcher' => 'getDispatcherService', 'dispatcher' => 'getDispatcherService',
@ -34,6 +35,7 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
'foo2' => 'getFoo2Service', 'foo2' => 'getFoo2Service',
'foo4' => 'getFoo4Service', 'foo4' => 'getFoo4Service',
'foo5' => 'getFoo5Service', 'foo5' => 'getFoo5Service',
'foo6' => 'getFoo6Service',
'foobar' => 'getFoobarService', 'foobar' => 'getFoobarService',
'foobar2' => 'getFoobar2Service', 'foobar2' => 'getFoobar2Service',
'foobar3' => 'getFoobar3Service', 'foobar3' => 'getFoobar3Service',
@ -63,6 +65,7 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
'Psr\\Container\\ContainerInterface' => true, 'Psr\\Container\\ContainerInterface' => true,
'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true, 'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true,
'bar2' => true, 'bar2' => true,
'bar6' => true,
'config' => true, 'config' => true,
'config2' => true, 'config2' => true,
'logger2' => true, 'logger2' => true,
@ -120,6 +123,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
return $instance; return $instance;
} }
/**
* Gets the public 'baz6' shared service.
*
* @return \stdClass
*/
protected function getBaz6Service()
{
$this->services['baz6'] = $instance = new \stdClass();
$instance->bar6 = ($this->privates['bar6'] ?? $this->getBar6Service());
return $instance;
}
/** /**
* Gets the public 'connection' shared service. * Gets the public 'connection' shared service.
* *
@ -244,6 +261,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
return $instance; return $instance;
} }
/**
* Gets the public 'foo6' shared service.
*
* @return \stdClass
*/
protected function getFoo6Service()
{
$this->services['foo6'] = $instance = new \stdClass();
$instance->bar6 = ($this->privates['bar6'] ?? $this->getBar6Service());
return $instance;
}
/** /**
* Gets the public 'foobar' shared service. * Gets the public 'foobar' shared service.
* *
@ -363,4 +394,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
{ {
return $this->services['subscriber'] = new \stdClass(($this->services['manager'] ?? $this->getManagerService())); return $this->services['subscriber'] = new \stdClass(($this->services['manager'] ?? $this->getManagerService()));
} }
/**
* Gets the private 'bar6' shared service.
*
* @return \stdClass
*/
protected function getBar6Service()
{
$a = ($this->services['foo6'] ?? $this->getFoo6Service());
if (isset($this->privates['bar6'])) {
return $this->privates['bar6'];
}
return $this->privates['bar6'] = new \stdClass($a);
}
} }

View File

@ -78,6 +78,7 @@ class Symfony_DI_PhpDumper_Test_Deep_Graph extends Container
$b = new \stdClass(); $b = new \stdClass();
$c = new \stdClass(); $c = new \stdClass();
$c->p3 = new \stdClass(); $c->p3 = new \stdClass();
$b->p2 = $c; $b->p2 = $c;
return $this->services['foo'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\FooForDeepGraph($a, $b); return $this->services['foo'] = new \Symfony\Component\DependencyInjection\Tests\Dumper\FooForDeepGraph($a, $b);

View File

@ -0,0 +1,90 @@
<?php
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
use Symfony\Component\DependencyInjection\Exception\LogicException;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
/**
* This class has been auto-generated
* by the Symfony Dependency Injection Component.
*
* @final since Symfony 3.3
*/
class ProjectServiceContainer extends Container
{
private $parameters;
private $targetDirs = array();
/**
* @internal but protected for BC on cache:clear
*/
protected $privates = array();
public function __construct()
{
$this->services = $this->privates = array();
$this->methodMap = array(
'tsantos_serializer' => 'getTsantosSerializerService',
);
$this->aliases = array(
'TSantos\\Serializer\\SerializerInterface' => 'tsantos_serializer',
);
}
public function reset()
{
$this->privates = array();
parent::reset();
}
public function compile()
{
throw new LogicException('You cannot compile a dumped container that was already compiled.');
}
public function isCompiled()
{
return true;
}
public function getRemovedIds()
{
return array(
'Psr\\Container\\ContainerInterface' => true,
'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true,
);
}
/**
* Gets the public 'tsantos_serializer' shared service.
*
* @return \TSantos\Serializer\EventEmitterSerializer
*/
protected function getTsantosSerializerService()
{
$a = new \TSantos\Serializer\NormalizerRegistry();
$d = new \TSantos\Serializer\EventDispatcher\EventDispatcher();
$d->addSubscriber(new \TSantos\SerializerBundle\EventListener\StopwatchListener(new \Symfony\Component\Stopwatch\Stopwatch(true)));
$this->services['tsantos_serializer'] = $instance = new \TSantos\Serializer\EventEmitterSerializer(new \TSantos\Serializer\Encoder\JsonEncoder(), $a, $d);
$b = new \TSantos\Serializer\Normalizer\CollectionNormalizer();
$b->setSerializer($instance);
$c = new \TSantos\Serializer\Normalizer\JsonNormalizer();
$c->setSerializer($instance);
$a->add(new \TSantos\Serializer\Normalizer\ObjectNormalizer(new \TSantos\SerializerBundle\Serializer\CircularReferenceHandler()));
$a->add($b);
$a->add($c);
return $instance;
}
}

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/>
<service id="tsantos_serializer" class="TSantos\Serializer\EventEmitterSerializer" public="true">
<argument type="service">
<service class="TSantos\Serializer\Encoder\JsonEncoder" public="false">
<tag name="tsantos_serializer.encoder" format="json"/>
</service>
</argument>
<argument type="service">
<service class="TSantos\Serializer\NormalizerRegistry" public="false">
<call method="add">
<argument type="service">
<service class="TSantos\Serializer\Normalizer\ObjectNormalizer" public="false">
<tag name="tsantos_serializer.normalizer" priority="-800"/>
<argument type="service">
<service class="TSantos\SerializerBundle\Serializer\CircularReferenceHandler" public="false"/>
</argument>
</service>
</argument>
</call>
<call method="add">
<argument type="service">
<service class="TSantos\Serializer\Normalizer\CollectionNormalizer" public="false">
<tag name="tsantos_serializer.normalizer" priority="-900"/>
<call method="setSerializer">
<argument type="service" id="tsantos_serializer"/>
</call>
</service>
</argument>
</call>
<call method="add">
<argument type="service">
<service class="TSantos\Serializer\Normalizer\JsonNormalizer" public="false">
<tag name="tsantos_serializer.normalizer" priority="-1000"/>
<call method="setSerializer">
<argument type="service" id="tsantos_serializer"/>
</call>
</service>
</argument>
</call>
</service>
</argument>
<argument type="service">
<service class="TSantos\Serializer\EventDispatcher\EventDispatcher" public="false">
<call method="addSubscriber">
<argument type="service">
<service class="TSantos\SerializerBundle\EventListener\StopwatchListener" public="false">
<tag name="tsantos_serializer.event_subscriber"/>
<argument type="service">
<service class="Symfony\Component\Stopwatch\Stopwatch" public="false">
<tag name="kernel.reset" method="reset"/>
<argument>true</argument>
</service>
</argument>
</service>
</argument>
</call>
</service>
</argument>
</service>
<service id="TSantos\Serializer\SerializerInterface" alias="tsantos_serializer" public="true"/>
</services>
</container>

View File

@ -19,6 +19,7 @@ use Symfony\Component\Config\Resource\GlobResource;
use Symfony\Component\DependencyInjection\Argument\BoundArgument; use Symfony\Component\DependencyInjection\Argument\BoundArgument;
use Symfony\Component\DependencyInjection\Argument\IteratorArgument; use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
use Symfony\Component\DependencyInjection\Loader\IniFileLoader; use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
@ -826,4 +827,16 @@ class XmlFileLoaderTest extends TestCase
$definition = $container->getDefinition('foo'); $definition = $container->getDefinition('foo');
$this->assertSame(array(array('interface' => 'SomeInterface')), $definition->getTag('proxy')); $this->assertSame(array(array('interface' => 'SomeInterface')), $definition->getTag('proxy'));
} }
public function testTsantosContainer()
{
$container = new ContainerBuilder();
$loader = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml'));
$loader->load('services_tsantos.xml');
$container->compile();
$dumper = new PhpDumper($container);
$dump = $dumper->dump();
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services_tsantos.php', $dumper->dump());
}
} }

View File

@ -129,7 +129,7 @@ class Crawler implements \Countable, \IteratorAggregate
* HTTP 1.1 specification. * HTTP 1.1 specification.
* *
* @param string $content A string to parse as HTML/XML * @param string $content A string to parse as HTML/XML
* @param null|string $type The content type of the string * @param string|null $type The content type of the string
*/ */
public function addContent($content, $type = null) public function addContent($content, $type = null)
{ {

View File

@ -31,12 +31,12 @@ class FilesystemTestCase extends TestCase
protected $workspace = null; protected $workspace = null;
/** /**
* @var null|bool Flag for hard links on Windows * @var bool|null Flag for hard links on Windows
*/ */
private static $linkOnWindows = null; private static $linkOnWindows = null;
/** /**
* @var null|bool Flag for symbolic links on Windows * @var bool|null Flag for symbolic links on Windows
*/ */
private static $symlinkOnWindows = null; private static $symlinkOnWindows = null;

View File

@ -368,7 +368,7 @@ class Button implements \IteratorAggregate, FormInterface
/** /**
* Submits data to the button. * Submits data to the button.
* *
* @param null|string $submittedData The data * @param string|null $submittedData The data
* @param bool $clearMissing Not used * @param bool $clearMissing Not used
* *
* @return $this * @return $this

View File

@ -32,7 +32,7 @@ interface ChoiceListFactoryInterface
* argument. * argument.
* *
* @param iterable $choices The choices * @param iterable $choices The choices
* @param null|callable $value The callable generating the choice * @param callable|null $value The callable generating the choice
* values * values
* *
* @return ChoiceListInterface The choice list * @return ChoiceListInterface The choice list
@ -47,7 +47,7 @@ interface ChoiceListFactoryInterface
* argument. * argument.
* *
* @param ChoiceLoaderInterface $loader The choice loader * @param ChoiceLoaderInterface $loader The choice loader
* @param null|callable $value The callable generating the choice * @param callable|null $value The callable generating the choice
* values * values
* *
* @return ChoiceListInterface The choice list * @return ChoiceListInterface The choice list
@ -81,14 +81,14 @@ interface ChoiceListFactoryInterface
* attributes that should be added to the respective choice. * attributes that should be added to the respective choice.
* *
* @param ChoiceListInterface $list The choice list * @param ChoiceListInterface $list The choice list
* @param null|array|callable $preferredChoices The preferred choices * @param array|callable|null $preferredChoices The preferred choices
* @param null|callable $label The callable generating the * @param callable|null $label The callable generating the
* choice labels * choice labels
* @param null|callable $index The callable generating the * @param callable|null $index The callable generating the
* view indices * view indices
* @param null|callable $groupBy The callable generating the * @param callable|null $groupBy The callable generating the
* group names * group names
* @param null|array|callable $attr The callable generating the * @param array|callable|null $attr The callable generating the
* HTML attributes * HTML attributes
* *
* @return ChoiceListView The choice list view * @return ChoiceListView The choice list view

View File

@ -60,7 +60,7 @@ class PropertyAccessDecorator implements ChoiceListFactoryInterface
* {@inheritdoc} * {@inheritdoc}
* *
* @param iterable $choices The choices * @param iterable $choices The choices
* @param null|callable|string|PropertyPath $value The callable or path for * @param callable|string|PropertyPath|null $value The callable or path for
* generating the choice values * generating the choice values
* *
* @return ChoiceListInterface The choice list * @return ChoiceListInterface The choice list
@ -91,7 +91,7 @@ class PropertyAccessDecorator implements ChoiceListFactoryInterface
* {@inheritdoc} * {@inheritdoc}
* *
* @param ChoiceLoaderInterface $loader The choice loader * @param ChoiceLoaderInterface $loader The choice loader
* @param null|callable|string|PropertyPath $value The callable or path for * @param callable|string|PropertyPath|null $value The callable or path for
* generating the choice values * generating the choice values
* *
* @return ChoiceListInterface The choice list * @return ChoiceListInterface The choice list
@ -122,11 +122,11 @@ class PropertyAccessDecorator implements ChoiceListFactoryInterface
* {@inheritdoc} * {@inheritdoc}
* *
* @param ChoiceListInterface $list The choice list * @param ChoiceListInterface $list The choice list
* @param null|array|callable|string|PropertyPath $preferredChoices The preferred choices * @param array|callable|string|PropertyPath|null $preferredChoices The preferred choices
* @param null|callable|string|PropertyPath $label The callable or path generating the choice labels * @param callable|string|PropertyPath|null $label The callable or path generating the choice labels
* @param null|callable|string|PropertyPath $index The callable or path generating the view indices * @param callable|string|PropertyPath|null $index The callable or path generating the view indices
* @param null|callable|string|PropertyPath $groupBy The callable or path generating the group names * @param callable|string|PropertyPath|null $groupBy The callable or path generating the group names
* @param null|array|callable|string|PropertyPath $attr The callable or path generating the HTML attributes * @param array|callable|string|PropertyPath|null $attr The callable or path generating the HTML attributes
* *
* @return ChoiceListView The choice list view * @return ChoiceListView The choice list view
*/ */

View File

@ -34,7 +34,7 @@ class LazyChoiceList implements ChoiceListInterface
* *
* If null, choices are simply cast to strings. * If null, choices are simply cast to strings.
* *
* @var null|callable * @var callable|null
*/ */
private $value; private $value;
@ -46,7 +46,7 @@ class LazyChoiceList implements ChoiceListInterface
* argument. * argument.
* *
* @param ChoiceLoaderInterface $loader The choice loader * @param ChoiceLoaderInterface $loader The choice loader
* @param null|callable $value The callable generating the choice values * @param callable|null $value The callable generating the choice values
*/ */
public function __construct(ChoiceLoaderInterface $loader, callable $value = null) public function __construct(ChoiceLoaderInterface $loader, callable $value = null)
{ {

View File

@ -31,7 +31,7 @@ interface ChoiceLoaderInterface
* The callable receives the choice as first and the array key as the second * The callable receives the choice as first and the array key as the second
* argument. * argument.
* *
* @param null|callable $value The callable which generates the values * @param callable|null $value The callable which generates the values
* from choices * from choices
* *
* @return ChoiceListInterface The loaded choice list * @return ChoiceListInterface The loaded choice list
@ -50,7 +50,7 @@ interface ChoiceLoaderInterface
* *
* @param string[] $values An array of choice values. Non-existing * @param string[] $values An array of choice values. Non-existing
* values in this array are ignored * values in this array are ignored
* @param null|callable $value The callable generating the choice values * @param callable|null $value The callable generating the choice values
* *
* @return array An array of choices * @return array An array of choices
*/ */
@ -68,7 +68,7 @@ interface ChoiceLoaderInterface
* *
* @param array $choices An array of choices. Non-existing choices in * @param array $choices An array of choices. Non-existing choices in
* this array are ignored * this array are ignored
* @param null|callable $value The callable generating the choice values * @param callable|null $value The callable generating the choice values
* *
* @return string[] An array of choice values * @return string[] An array of choice values
*/ */

View File

@ -29,7 +29,7 @@ class CsrfExtension extends AbstractExtension
/** /**
* @param CsrfTokenManagerInterface $tokenManager The CSRF token manager * @param CsrfTokenManagerInterface $tokenManager The CSRF token manager
* @param TranslatorInterface $translator The translator for translating error messages * @param TranslatorInterface $translator The translator for translating error messages
* @param null|string $translationDomain The translation domain for translating * @param string|null $translationDomain The translation domain for translating
*/ */
public function __construct(CsrfTokenManagerInterface $tokenManager, TranslatorInterface $translator = null, string $translationDomain = null) public function __construct(CsrfTokenManagerInterface $tokenManager, TranslatorInterface $translator = null, string $translationDomain = null)
{ {

View File

@ -46,7 +46,7 @@ class MappingRule
* *
* @param string $propertyPath The property path to match against the rule * @param string $propertyPath The property path to match against the rule
* *
* @return null|FormInterface The mapped form or null * @return FormInterface|null The mapped form or null
*/ */
public function match($propertyPath) public function match($propertyPath)
{ {

View File

@ -144,7 +144,7 @@ class ViolationMapper implements ViolationMapperInterface
* @param FormInterface $form The form to search * @param FormInterface $form The form to search
* @param PropertyPathIteratorInterface $it The iterator at its current position * @param PropertyPathIteratorInterface $it The iterator at its current position
* *
* @return null|FormInterface The found match or null * @return FormInterface|null The found match or null
*/ */
private function matchChild(FormInterface $form, PropertyPathIteratorInterface $it) private function matchChild(FormInterface $form, PropertyPathIteratorInterface $it)
{ {

View File

@ -146,7 +146,7 @@ interface FormConfigBuilderInterface extends FormConfigInterface
/** /**
* Sets the property path that the form should be mapped to. * Sets the property path that the form should be mapped to.
* *
* @param null|string|PropertyPathInterface $propertyPath The property path or null if the path should be set * @param string|PropertyPathInterface|null $propertyPath The property path or null if the path should be set
* automatically based on the form's name * automatically based on the form's name
* *
* @return $this The configuration object * @return $this The configuration object

View File

@ -38,7 +38,7 @@ interface FormConfigInterface
/** /**
* Returns the property path that the form should be mapped to. * Returns the property path that the form should be mapped to.
* *
* @return null|PropertyPathInterface The property path * @return PropertyPathInterface|null The property path
*/ */
public function getPropertyPath(); public function getPropertyPath();
@ -167,7 +167,7 @@ interface FormConfigInterface
/** /**
* Returns the class of the form data or null if the data is scalar or an array. * Returns the class of the form data or null if the data is scalar or an array.
* *
* @return null|string The data class or null * @return string|null The data class or null
*/ */
public function getDataClass(); public function getDataClass();

View File

@ -34,7 +34,7 @@ class SubmitButton extends Button implements ClickableInterface
/** /**
* Submits data to the button. * Submits data to the button.
* *
* @param null|string $submittedData The data * @param string|null $submittedData The data
* @param bool $clearMissing Not used * @param bool $clearMissing Not used
* *
* @return $this * @return $this

View File

@ -11,9 +11,7 @@ class AlternatingRowType extends AbstractType
{ {
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$formFactory = $builder->getFormFactory(); $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($formFactory) {
$form = $event->getForm(); $form = $event->getForm();
$type = 0 === $form->getName() % 2 $type = 0 === $form->getName() % 2
? 'Symfony\Component\Form\Extension\Core\Type\TextType' ? 'Symfony\Component\Form\Extension\Core\Type\TextType'

View File

@ -35,7 +35,7 @@ class StringUtilTest extends TestCase
// Convert UCS-2BE to UTF-8 // Convert UCS-2BE to UTF-8
$symbol = mb_convert_encoding($binary, 'UTF-8', 'UCS-2BE'); $symbol = mb_convert_encoding($binary, 'UTF-8', 'UCS-2BE');
$symbol = $symbol."ab\ncd".$symbol; $symbol .= "ab\ncd".$symbol;
$this->assertSame("ab\ncd", StringUtil::trim($symbol)); $this->assertSame("ab\ncd", StringUtil::trim($symbol));
} }

View File

@ -41,7 +41,7 @@ class ServerParams
/** /**
* Returns maximum post size in bytes. * Returns maximum post size in bytes.
* *
* @return null|int The maximum post size in bytes * @return int|null The maximum post size in bytes
*/ */
public function getPostMaxSize() public function getPostMaxSize()
{ {

View File

@ -40,7 +40,7 @@ class BinaryFileResponse extends Response
* @param int $status The response status code * @param int $status The response status code
* @param array $headers An array of response headers * @param array $headers An array of response headers
* @param bool $public Files are public by default * @param bool $public Files are public by default
* @param null|string $contentDisposition The type of Content-Disposition to set automatically with the filename * @param string|null $contentDisposition The type of Content-Disposition to set automatically with the filename
* @param bool $autoEtag Whether the ETag header should be automatically set * @param bool $autoEtag Whether the ETag header should be automatically set
* @param bool $autoLastModified Whether the Last-Modified header should be automatically set * @param bool $autoLastModified Whether the Last-Modified header should be automatically set
*/ */
@ -60,7 +60,7 @@ class BinaryFileResponse extends Response
* @param int $status The response status code * @param int $status The response status code
* @param array $headers An array of response headers * @param array $headers An array of response headers
* @param bool $public Files are public by default * @param bool $public Files are public by default
* @param null|string $contentDisposition The type of Content-Disposition to set automatically with the filename * @param string|null $contentDisposition The type of Content-Disposition to set automatically with the filename
* @param bool $autoEtag Whether the ETag header should be automatically set * @param bool $autoEtag Whether the ETag header should be automatically set
* @param bool $autoLastModified Whether the Last-Modified header should be automatically set * @param bool $autoLastModified Whether the Last-Modified header should be automatically set
* *

View File

@ -206,7 +206,7 @@ class HeaderBag implements \IteratorAggregate, \Countable
* @param string $key The parameter key * @param string $key The parameter key
* @param \DateTime $default The default value * @param \DateTime $default The default value
* *
* @return null|\DateTime The parsed DateTime or the default value if the header does not exist * @return \DateTime|null The parsed DateTime or the default value if the header does not exist
* *
* @throws \RuntimeException When the HTTP header is not parseable * @throws \RuntimeException When the HTTP header is not parseable
*/ */

View File

@ -350,7 +350,7 @@ class Request
if (isset($components['port'])) { if (isset($components['port'])) {
$server['SERVER_PORT'] = $components['port']; $server['SERVER_PORT'] = $components['port'];
$server['HTTP_HOST'] = $server['HTTP_HOST'].':'.$components['port']; $server['HTTP_HOST'] .= ':'.$components['port'];
} }
if (isset($components['user'])) { if (isset($components['user'])) {

View File

@ -71,7 +71,7 @@ class PdoSessionHandler extends AbstractSessionHandler
private $pdo; private $pdo;
/** /**
* @var string|null|false DSN string or null for session.save_path or false when lazy connection disabled * @var string|false|null DSN string or null for session.save_path or false when lazy connection disabled
*/ */
private $dsn = false; private $dsn = false;

View File

@ -26,7 +26,7 @@ class FileLocator extends BaseFileLocator
/** /**
* @param KernelInterface $kernel A KernelInterface instance * @param KernelInterface $kernel A KernelInterface instance
* @param null|string $path The path the global resource directory * @param string|null $path The path the global resource directory
* @param array $paths An array of paths where to look for resources * @param array $paths An array of paths where to look for resources
*/ */
public function __construct(KernelInterface $kernel, string $path = null, array $paths = array()) public function __construct(KernelInterface $kernel, string $path = null, array $paths = array())

View File

@ -45,7 +45,7 @@ final class ArgumentMetadataFactory implements ArgumentMetadataFactoryInterface
* *
* @param \ReflectionParameter $parameter * @param \ReflectionParameter $parameter
* *
* @return null|string * @return string|null
*/ */
private function getType(\ReflectionParameter $parameter, \ReflectionFunctionAbstract $function) private function getType(\ReflectionParameter $parameter, \ReflectionFunctionAbstract $function)
{ {

View File

@ -89,7 +89,7 @@ class Profile
/** /**
* Returns the parent token. * Returns the parent token.
* *
* @return null|string The parent token * @return string|null The parent token
*/ */
public function getParentToken() public function getParentToken()
{ {

View File

@ -187,7 +187,7 @@ final class Intl
/** /**
* Returns the version of the installed ICU library. * Returns the version of the installed ICU library.
* *
* @return null|string The ICU version or NULL if it could not be determined * @return string|null The ICU version or NULL if it could not be determined
*/ */
public static function getIcuVersion() public static function getIcuVersion()
{ {

View File

@ -55,7 +55,7 @@ class Entry
* *
* @param $name string The name of the attribute * @param $name string The name of the attribute
* *
* @return null|array * @return array|null
*/ */
public function getAttribute($name) public function getAttribute($name)
{ {

View File

@ -20,7 +20,7 @@ use Symfony\Component\Process\Exception\RuntimeException;
*/ */
class InputStream implements \IteratorAggregate class InputStream implements \IteratorAggregate
{ {
/** @var null|callable */ /** @var callable|null */
private $onEmpty = null; private $onEmpty = null;
private $input = array(); private $input = array();
private $open = true; private $open = true;

View File

@ -684,7 +684,7 @@ class Process implements \IteratorAggregate
/** /**
* Returns the exit code returned by the process. * Returns the exit code returned by the process.
* *
* @return null|int The exit status code, null if the Process is not terminated * @return int|null The exit status code, null if the Process is not terminated
*/ */
public function getExitCode() public function getExitCode()
{ {
@ -699,7 +699,7 @@ class Process implements \IteratorAggregate
* This method relies on the Unix exit code status standardization * This method relies on the Unix exit code status standardization
* and might not be relevant for other operating systems. * and might not be relevant for other operating systems.
* *
* @return null|string A string representation for the exit status code, null if the Process is not terminated * @return string|null A string representation for the exit status code, null if the Process is not terminated
* *
* @see http://tldp.org/LDP/abs/html/exitcodes.html * @see http://tldp.org/LDP/abs/html/exitcodes.html
* @see http://en.wikipedia.org/wiki/Unix_signal * @see http://en.wikipedia.org/wiki/Unix_signal

View File

@ -121,7 +121,6 @@ class PropertyAccessor implements PropertyAccessorInterface
// '[a][b][c]' => 'old-value' // '[a][b][c]' => 'old-value'
// If you want to change its value to 'new-value', // If you want to change its value to 'new-value',
// you only need set value for '[a][b][c]' and it's safe to ignore '[a][b]' and '[a]' // you only need set value for '[a][b][c]' and it's safe to ignore '[a][b]' and '[a]'
//
if ($overwrite) { if ($overwrite) {
$property = $propertyPath->getElement($i); $property = $propertyPath->getElement($i);

View File

@ -24,7 +24,7 @@ class PropertyPathBuilder
/** /**
* Creates a new property path builder. * Creates a new property path builder.
* *
* @param null|PropertyPathInterface|string $path The path to initially store * @param PropertyPathInterface|string|null $path The path to initially store
* in the builder. Optional. * in the builder. Optional.
*/ */
public function __construct($path = null) public function __construct($path = null)

View File

@ -29,7 +29,7 @@ class Route implements \Serializable
private $condition = ''; private $condition = '';
/** /**
* @var null|CompiledRoute * @var CompiledRoute|null
*/ */
private $compiled; private $compiled;

View File

@ -134,7 +134,7 @@ class LdapUserProvider implements UserProviderInterface
/** /**
* Fetches a required unique attribute value from an LDAP entry. * Fetches a required unique attribute value from an LDAP entry.
* *
* @param null|Entry $entry * @param Entry|null $entry
* @param string $attribute * @param string $attribute
*/ */
private function getAttributeValue(Entry $entry, $attribute) private function getAttributeValue(Entry $entry, $attribute)

View File

@ -31,7 +31,7 @@ class CsrfTokenManager implements CsrfTokenManagerInterface
private $namespace; private $namespace;
/** /**
* @param null|string|RequestStack|callable $namespace * @param string|RequestStack|callable|null $namespace
* * null: generates a namespace using $_SERVER['HTTPS'] * * null: generates a namespace using $_SERVER['HTTPS']
* * string: uses the given string * * string: uses the given string
* * RequestStack: generates a namespace using the current master request * * RequestStack: generates a namespace using the current master request

View File

@ -96,7 +96,7 @@ class GuardAuthenticationListener implements ListenerInterface
$request = $event->getRequest(); $request = $event->getRequest();
try { try {
if (null !== $this->logger) { if (null !== $this->logger) {
$this->logger->debug('Calling getCredentials() on guard configurator.', array('firewall_key' => $this->providerKey, 'authenticator' => \get_class($guardAuthenticator))); $this->logger->debug('Calling getCredentials() on guard authenticator.', array('firewall_key' => $this->providerKey, 'authenticator' => \get_class($guardAuthenticator)));
} }
// abort the execution of the authenticator if it doesn't support the request // abort the execution of the authenticator if it doesn't support the request

View File

@ -22,7 +22,7 @@ class CamelCaseToSnakeCaseNameConverter implements NameConverterInterface
private $lowerCamelCase; private $lowerCamelCase;
/** /**
* @param null|array $attributes The list of attributes to rename or null for all attributes * @param array|null $attributes The list of attributes to rename or null for all attributes
* @param bool $lowerCamelCase Use lowerCamelCase style * @param bool $lowerCamelCase Use lowerCamelCase style
*/ */
public function __construct(array $attributes = null, bool $lowerCamelCase = true) public function __construct(array $attributes = null, bool $lowerCamelCase = true)

View File

@ -24,7 +24,7 @@ class Section
private $events = array(); private $events = array();
/** /**
* @var null|float * @var float|null
*/ */
private $origin; private $origin;

View File

@ -31,7 +31,7 @@ abstract class AbstractOperation implements OperationInterface
protected $result; protected $result;
/** /**
* @var null|array The domains affected by this operation * @var array|null The domains affected by this operation
*/ */
private $domains; private $domains;

View File

@ -89,7 +89,7 @@ class PhpStringTokenParser
* Parses escape sequences in strings (all string types apart from single quoted). * Parses escape sequences in strings (all string types apart from single quoted).
* *
* @param string $str String without quotes * @param string $str String without quotes
* @param null|string $quote Quote type * @param string|null $quote Quote type
* *
* @return string String with escape sequences parsed * @return string String with escape sequences parsed
*/ */

View File

@ -74,7 +74,7 @@ class ValidatorBuilder implements ValidatorBuilderInterface
private $translator; private $translator;
/** /**
* @var null|string * @var string|null
*/ */
private $translationDomain; private $translationDomain;

View File

@ -63,7 +63,7 @@ class Data implements \ArrayAccess, \Countable, \IteratorAggregate
/** /**
* @param bool $recursive Whether values should be resolved recursively or not * @param bool $recursive Whether values should be resolved recursively or not
* *
* @return string|int|float|bool|array|null|Data[] A native representation of the original value * @return string|int|float|bool|array|Data[]|null A native representation of the original value
*/ */
public function getValue($recursive = false) public function getValue($recursive = false)
{ {

View File

@ -31,7 +31,7 @@ interface MetadataStoreInterface
* *
* This is a proxy method. * This is a proxy method.
* *
* @param null|string|Transition $subject Use null to get workflow metadata * @param string|Transition|null $subject Use null to get workflow metadata
* Use a string (the place name) to get place metadata * Use a string (the place name) to get place metadata
* Use a Transition instance to get transition metadata * Use a Transition instance to get transition metadata
*/ */