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

View File

@ -43,7 +43,7 @@ class DoctrineChoiceLoader implements ChoiceLoaderInterface
* @param ObjectManager $manager The object manager
* @param string $class The class name of the loaded objects
* @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)
{

View File

@ -67,7 +67,7 @@ class ClockMock
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)

View File

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

View File

@ -106,7 +106,7 @@ class WorkflowExtension extends AbstractExtension
* Returns the metadata for a specific 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 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
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)
{
$file = $file.'.'.$this->getFileExtension();
$file .= '.'.$this->getFileExtension();
$container = new ContainerBuilder();
$security = new SecurityExtension();

View File

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

View File

@ -150,7 +150,7 @@ class Command
* execute() method, you set the code to execute by passing
* 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
*

View File

@ -89,7 +89,7 @@ class QuestionHelper extends Helper
/**
* 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
*/

View File

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

View File

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

View File

@ -33,11 +33,11 @@ class InputOption
private $description;
/**
* @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 int $mode The option mode: One of the VALUE_* constants
* @param string $description A description text
* @param mixed $default The default value (must be null for self::VALUE_NONE)
* @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 int|null $mode The option mode: One of the VALUE_* constants
* @param string $description A description text
* @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
*/
@ -149,7 +149,7 @@ class InputOption
/**
* 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
*/
@ -173,7 +173,7 @@ class InputOption
/**
* Returns the default value.
*
* @return string|string[]|bool The default value
* @return string|string[]|bool|null The default value
*/
public function getDefault()
{

View File

@ -117,7 +117,7 @@ class Question
/**
* Gets values for the autocompleter.
*
* @return null|iterable
* @return iterable|null
*/
public function getAutocompleterValues()
{
@ -127,7 +127,7 @@ class Question
/**
* Sets values for the autocompleter.
*
* @param null|iterable $values
* @param iterable|null $values
*
* @return $this
*
@ -156,7 +156,7 @@ class Question
/**
* Sets a validator for the question.
*
* @param null|callable $validator
* @param callable|null $validator
*
* @return $this
*/
@ -170,7 +170,7 @@ class Question
/**
* Gets the validator for the question.
*
* @return null|callable
* @return callable|null
*/
public function getValidator()
{
@ -182,7 +182,7 @@ class Question
*
* Null means an unlimited number of attempts.
*
* @param null|int $attempts
* @param int|null $attempts
*
* @return $this
*
@ -204,7 +204,7 @@ class Question
*
* Null means an unlimited number of attempts.
*
* @return null|int
* @return int|null
*/
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
$dispatcher = new EventDispatcher();
$self = $this;
$dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use ($self, &$passedRightValue) {
$dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
$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
$dispatcher = new EventDispatcher();
$self = $this;
$dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use ($self, &$passedRightValue) {
$dispatcher->addListener('console.terminate', function (ConsoleTerminateEvent $event) use (&$passedRightValue) {
$passedRightValue = (1 === $event->getExitCode());
});

View File

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

View File

@ -142,7 +142,7 @@ class TokenStream
/**
* 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
*/

View File

@ -919,7 +919,7 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
* an autowired definition.
*
* @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
*/

View File

@ -125,8 +125,8 @@ class Definition
/**
* Sets the service that this service is decorating.
*
* @param null|string $id The decorated service id, use null to remove decoration
* @param null|string $renamedId The new decorated service id
* @param string|null $id The decorated service id, use null to remove decoration
* @param string|null $renamedId The new decorated service id
* @param int $priority The priority of decoration
*
* @return $this
@ -153,7 +153,7 @@ class Definition
/**
* 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()
{

View File

@ -762,8 +762,9 @@ EOTXT
$code = '';
$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->addServiceMethodCalls($definition, $name);
$code .= $this->addServiceConfigurator($definition, $name);

View File

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

View File

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

View File

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

View File

@ -101,4 +101,18 @@ $container->register('dispatcher2', 'stdClass')->setPublic($public)
$container->register('subscriber2', 'stdClass')->setPublic(false)
->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;

View File

@ -25,11 +25,13 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
$this->methodMap = array(
'bar2' => 'getBar2Service',
'bar3' => 'getBar3Service',
'baz6' => 'getBaz6Service',
'connection' => 'getConnectionService',
'connection2' => 'getConnection2Service',
'foo' => 'getFooService',
'foo2' => 'getFoo2Service',
'foo5' => 'getFoo5Service',
'foo6' => 'getFoo6Service',
'foobar4' => 'getFoobar4Service',
'logger' => 'getLoggerService',
'manager' => 'getManagerService',
@ -57,6 +59,7 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true,
'bar' => true,
'bar5' => true,
'bar6' => true,
'config' => true,
'config2' => true,
'dispatcher' => true,
@ -100,6 +103,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
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.
*
@ -196,6 +213,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
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.
*
@ -279,4 +310,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Private extends Container
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',
'bar3' => 'getBar3Service',
'bar5' => 'getBar5Service',
'baz6' => 'getBaz6Service',
'connection' => 'getConnectionService',
'connection2' => 'getConnection2Service',
'dispatcher' => 'getDispatcherService',
@ -34,6 +35,7 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
'foo2' => 'getFoo2Service',
'foo4' => 'getFoo4Service',
'foo5' => 'getFoo5Service',
'foo6' => 'getFoo6Service',
'foobar' => 'getFoobarService',
'foobar2' => 'getFoobar2Service',
'foobar3' => 'getFoobar3Service',
@ -63,6 +65,7 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
'Psr\\Container\\ContainerInterface' => true,
'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true,
'bar2' => true,
'bar6' => true,
'config' => true,
'config2' => true,
'logger2' => true,
@ -120,6 +123,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
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.
*
@ -244,6 +261,20 @@ class Symfony_DI_PhpDumper_Test_Almost_Circular_Public extends Container
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.
*
@ -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()));
}
/**
* 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();
$c = new \stdClass();
$c->p3 = new \stdClass();
$b->p2 = $c;
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\IteratorArgument;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
@ -826,4 +827,16 @@ class XmlFileLoaderTest extends TestCase
$definition = $container->getDefinition('foo');
$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.
*
* @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)
{

View File

@ -31,12 +31,12 @@ class FilesystemTestCase extends TestCase
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;
/**
* @var null|bool Flag for symbolic links on Windows
* @var bool|null Flag for symbolic links on Windows
*/
private static $symlinkOnWindows = null;

View File

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

View File

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

View File

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

View File

@ -34,7 +34,7 @@ class LazyChoiceList implements ChoiceListInterface
*
* If null, choices are simply cast to strings.
*
* @var null|callable
* @var callable|null
*/
private $value;
@ -46,7 +46,7 @@ class LazyChoiceList implements ChoiceListInterface
* argument.
*
* @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)
{

View File

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

View File

@ -29,7 +29,7 @@ class CsrfExtension extends AbstractExtension
/**
* @param CsrfTokenManagerInterface $tokenManager The CSRF token manager
* @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)
{

View File

@ -46,7 +46,7 @@ class MappingRule
*
* @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)
{

View File

@ -144,7 +144,7 @@ class ViolationMapper implements ViolationMapperInterface
* @param FormInterface $form The form to search
* @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)
{

View File

@ -146,7 +146,7 @@ interface FormConfigBuilderInterface extends FormConfigInterface
/**
* 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
*
* @return $this The configuration object

View File

@ -38,7 +38,7 @@ interface FormConfigInterface
/**
* 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();
@ -167,7 +167,7 @@ interface FormConfigInterface
/**
* 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();

View File

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

View File

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

View File

@ -35,7 +35,7 @@ class StringUtilTest extends TestCase
// Convert UCS-2BE to UTF-8
$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));
}

View File

@ -41,7 +41,7 @@ class ServerParams
/**
* 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()
{

View File

@ -40,7 +40,7 @@ class BinaryFileResponse extends Response
* @param int $status The response status code
* @param array $headers An array of response headers
* @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 $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 array $headers An array of response headers
* @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 $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 \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
*/

View File

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

View File

@ -71,7 +71,7 @@ class PdoSessionHandler extends AbstractSessionHandler
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;

View File

@ -26,7 +26,7 @@ class FileLocator extends BaseFileLocator
/**
* @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
*/
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
*
* @return null|string
* @return string|null
*/
private function getType(\ReflectionParameter $parameter, \ReflectionFunctionAbstract $function)
{

View File

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

View File

@ -187,7 +187,7 @@ final class Intl
/**
* 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()
{

View File

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

View File

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

View File

@ -684,7 +684,7 @@ class Process implements \IteratorAggregate
/**
* 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()
{
@ -699,7 +699,7 @@ class Process implements \IteratorAggregate
* This method relies on the Unix exit code status standardization
* 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://en.wikipedia.org/wiki/Unix_signal

View File

@ -121,7 +121,6 @@ class PropertyAccessor implements PropertyAccessorInterface
// '[a][b][c]' => 'old-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]'
//
if ($overwrite) {
$property = $propertyPath->getElement($i);

View File

@ -24,7 +24,7 @@ class PropertyPathBuilder
/**
* 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.
*/
public function __construct($path = null)

View File

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

View File

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

View File

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

View File

@ -96,7 +96,7 @@ class GuardAuthenticationListener implements ListenerInterface
$request = $event->getRequest();
try {
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

View File

@ -22,7 +22,7 @@ class CamelCaseToSnakeCaseNameConverter implements NameConverterInterface
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
*/
public function __construct(array $attributes = null, bool $lowerCamelCase = true)

View File

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

View File

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

View File

@ -89,7 +89,7 @@ class PhpStringTokenParser
* Parses escape sequences in strings (all string types apart from single quoted).
*
* @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
*/

View File

@ -74,7 +74,7 @@ class ValidatorBuilder implements ValidatorBuilderInterface
private $translator;
/**
* @var null|string
* @var string|null
*/
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
*
* @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)
{

View File

@ -31,7 +31,7 @@ interface MetadataStoreInterface
*
* 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 Transition instance to get transition metadata
*/