diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 415464c40b9a8..0bef18db33536 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -25,3 +25,5 @@
/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ValidateWorkflowsPass.php @lyrixx
/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/WorkflowGuardListenerPass.php @lyrixx
/src/Symfony/Component/Workflow/* @lyrixx
+# Yaml
+/src/Symfony/Component/Yaml/* @xabbuh
diff --git a/.travis.yml b/.travis.yml
index 25ca170da93a5..c0367f10720bd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -144,7 +144,7 @@ before_install:
tfold ext.apcu tpecl apcu-4.0.11 apcu.so $INI
elif [[ ! $skip && $PHP = 7.* ]]; then
tfold ext.apcu tpecl apcu-5.1.6 apcu.so $INI
- tfold ext.mongodb tpecl mongodb-1.4.0RC1 mongodb.so $INI
+ tfold ext.mongodb tpecl mongodb-1.5.0 mongodb.so $INI
fi
install:
diff --git a/CHANGELOG-2.8.md b/CHANGELOG-2.8.md
index 7d381b890873c..4db4bfd7cb1e7 100644
--- a/CHANGELOG-2.8.md
+++ b/CHANGELOG-2.8.md
@@ -7,6 +7,20 @@ in 2.8 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/v2.8.0...v2.8.1
+* 2.8.43 (2018-07-23)
+
+ * bug #28005 [HttpKernel] Fixed templateExists on parse error of the template name (yceruto)
+ * bug #27997 Serbo-Croatian has Serbian plural rule (kylekatarnls)
+ * bug #27941 [WebProfilerBundle] Fixed icon alignment issue using Bootstrap 4.1.2 (jmsche)
+ * bug #27937 [HttpFoundation] reset callback on StreamedResponse when setNotModified() is called (rubencm)
+ * bug #27927 [HttpFoundation] Suppress side effects in 'get' and 'has' methods of NamespacedAttributeBag (webnet-fr)
+ * bug #27904 [Filesystem] fix lock file permissions (fritzmg)
+ * bug #27758 [WebProfilerBundle] Prevent toolbar links color override by css (alcalyn)
+ * bug #27831 Check for Hyper terminal on all operating systems. (azjezz)
+ * bug #27794 Add color support for Hyper terminal . (azjezz)
+ * bug #27809 [HttpFoundation] Fix tests: new message for status 425 (dunglas)
+ * bug #27716 [DI] fix dumping deprecated service in yaml (nicolas-grekas)
+
* 2.8.42 (2018-06-25)
* bug #27669 [Filesystem] fix file lock on SunOS (fritzmg)
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index 21142e2bdea33..b6eef0b63198c 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -16,8 +16,8 @@ Symfony is the result of the work of many people who made the code better
- Robin Chalas (chalas_r)
- Johannes S (johannes)
- Jakub Zalas (jakubzalas)
- - Kris Wallsmith (kriswallsmith)
- Maxime Steinhausser (ogizanagi)
+ - Kris Wallsmith (kriswallsmith)
- Ryan Weaver (weaverryan)
- Javier Eguiluz (javier.eguiluz)
- Grégoire Pineau (lyrixx)
@@ -25,8 +25,8 @@ Symfony is the result of the work of many people who made the code better
- Abdellatif Ait boudad (aitboudad)
- Romain Neutron (romain)
- Pascal Borreli (pborreli)
- - Wouter De Jong (wouterj)
- Roland Franssen (ro0)
+ - Wouter De Jong (wouterj)
- Joseph Bielawski (stloyd)
- Karma Dordrak (drak)
- Lukas Kahwe Smith (lsmith)
@@ -39,8 +39,8 @@ Symfony is the result of the work of many people who made the code better
- Jules Pietri (heah)
- Eriksen Costa (eriksencosta)
- Guilhem Niot (energetick)
- - Sarah Khalil (saro0h)
- Yonel Ceruto (yonelceruto)
+ - Sarah Khalil (saro0h)
- Jonathan Wage (jwage)
- Hamza Amrouche (simperfit)
- Diego Saint Esteben (dosten)
@@ -54,16 +54,16 @@ Symfony is the result of the work of many people who made the code better
- Bulat Shakirzyanov (avalanche123)
- Peter Rehm (rpet)
- Matthias Pigulla (mpdude)
+ - Dany Maillard (maidmaid)
- Saša Stamenković (umpirsky)
- Kevin Bond (kbond)
- Tobias Nyholm (tobias)
- Pierre du Plessis (pierredup)
- Henrik Bjørnskov (henrikbjorn)
- - Dany Maillard (maidmaid)
- Miha Vrhovnik
- Diego Saint Esteben (dii3g0)
- - Konstantin Kudryashov (everzet)
- Alexander M. Turek (derrabus)
+ - Konstantin Kudryashov (everzet)
- Bilal Amarni (bamarni)
- Jérémy DERUSSÉ (jderusse)
- Florin Patan (florinpatan)
@@ -77,13 +77,13 @@ Symfony is the result of the work of many people who made the code better
- Charles Sarrazin (csarrazi)
- Konstantin Myakshin (koc)
- Christian Raue
+ - David Maicher (dmaicher)
- Arnout Boks (aboks)
- Deni
- Henrik Westphal (snc)
- Dariusz Górecki (canni)
- Issei Murasawa (issei_m)
- Douglas Greenshields (shieldo)
- - David Maicher (dmaicher)
- Vladimir Reznichenko (kalessil)
- Lee McDermott
- Brandon Turner
@@ -105,11 +105,12 @@ Symfony is the result of the work of many people who made the code better
- Tim Nagel (merk)
- Grégoire Paris (greg0ire)
- Brice BERNARD (brikou)
+ - Valentin Udaltsov (vudaltsov)
+ - gadelat (gadelat)
- Baptiste Clavié (talus)
- marc.weistroff
- lenar
- Alexander Schwenn (xelaris)
- - gadelat (gadelat)
- Włodzimierz Gajda (gajdaw)
- Peter Kokot (maastermedia)
- Jacob Dreesen (jdreesen)
@@ -123,7 +124,6 @@ Symfony is the result of the work of many people who made the code better
- Fabien Pennequin (fabienpennequin)
- Gordon Franke (gimler)
- Eric GELOEN (gelo)
- - Valentin Udaltsov (vudaltsov)
- Lars Strojny (lstrojny)
- Daniel Wehner (dawehner)
- Tugdual Saunier (tucksaun)
@@ -142,6 +142,7 @@ 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)
- Guilherme Blanco (guilhermeblanco)
- Pablo Godel (pgodel)
@@ -154,7 +155,6 @@ Symfony is the result of the work of many people who made the code better
- Teoh Han Hui (teohhanhui)
- Mikael Pajunen
- Joel Wurtz (brouznouf)
- - Chris Wilkinson (thewilkybarkid)
- Oleg Voronkovich
- Vyacheslav Pavlov
- Richard van Laak (rvanlaak)
@@ -170,6 +170,7 @@ Symfony is the result of the work of many people who made the code better
- Amal Raghav (kertz)
- Jonathan Ingram (jonathaningram)
- Artur Kotyrba
+ - Jannik Zschiesche (apfelbox)
- GDIBass
- jeremyFreeAgent (Jérémy Romey) (jeremyfreeagent)
- James Halsall (jaitsu)
@@ -204,7 +205,6 @@ Symfony is the result of the work of many people who made the code better
- Matthieu Bontemps (mbontemps)
- apetitpa
- Pierre Minnieur (pminnieur)
- - Jannik Zschiesche (apfelbox)
- fivestar
- Dominique Bongiraud
- Jeremy Livingston (jeremylivingston)
@@ -232,6 +232,7 @@ Symfony is the result of the work of many people who made the code better
- Nikolay Labinskiy (e-moe)
- Michaël Perrin (michael.perrin)
- Marcel Beerta (mazen)
+ - Albert Casademont (acasademont)
- Loïc Faugeron
- Hidde Wieringa (hiddewie)
- Marco Pivetta (ocramius)
@@ -265,6 +266,7 @@ Symfony is the result of the work of many people who made the code better
- Jordan Samouh (jordansamouh)
- Baptiste Lafontaine (magnetik)
- Jakub Kucharovic (jkucharovic)
+ - Edi Modrić (emodric)
- Uwe Jäger (uwej711)
- Eugene Leonovich (rybakit)
- Filippo Tessarotto
@@ -276,7 +278,6 @@ Symfony is the result of the work of many people who made the code better
- Tyson Andre
- Chekote
- Thomas Adam
- - Albert Casademont (acasademont)
- Viktor Bocharskyi (bocharsky_bw)
- Jhonny Lidfors (jhonne)
- Diego Agulló (aeoris)
@@ -305,7 +306,6 @@ Symfony is the result of the work of many people who made the code better
- Christian Schmidt
- Maxime Veber (nek-)
- MatTheCat
- - Edi Modrić (emodric)
- Chad Sikorra (chadsikorra)
- Chris Smith (cs278)
- Florian Klein (docteurklein)
@@ -349,6 +349,7 @@ Symfony is the result of the work of many people who made the code better
- Artur Melo (restless)
- Matthew Lewinski (lewinski)
- Magnus Nordlander (magnusnordlander)
+ - Thomas Royer (cydonia7)
- alquerci
- Francesco Levorato
- Vitaliy Zakharov (zakharovvi)
@@ -376,6 +377,7 @@ Symfony is the result of the work of many people who made the code better
- ShinDarth
- Stéphane PY (steph_py)
- Philipp Kräutli (pkraeutli)
+ - Grzegorz (Greg) Zdanowski (kiler129)
- Kirill chEbba Chebunin (chebba)
- Greg Thornton (xdissent)
- Gary PEGEOT (gary-p)
@@ -429,13 +431,13 @@ Symfony is the result of the work of many people who made the code better
- Christopher Davis (chrisguitarguy)
- Jan Schumann
- Niklas Fiekas
+ - Colin O'Dell (colinodell)
- Markus Bachmann (baachi)
- lancergr
- Zan Baldwin
- Mihai Stancu
- Olivier Dolbeau (odolbeau)
- Jan Rosier (rosier)
- - Thomas Royer (cydonia7)
- Arturs Vonda
- Josip Kruslin
- Asmir Mustafic (goetas)
@@ -484,7 +486,6 @@ Symfony is the result of the work of many people who made the code better
- Miroslav Sustek
- Sullivan SENECHAL (soullivaneuh)
- Pablo Díez (pablodip)
- - Grzegorz (Greg) Zdanowski (kiler129)
- Martin Hujer (martinhujer)
- Kevin McBride
- Sergio Santoro
@@ -553,6 +554,7 @@ Symfony is the result of the work of many people who made the code better
- Ned Schwartz
- Ziumin
- Jeremy Benoist
+ - fritzmg
- Lenar Lõhmus
- Sander Toonen (xatoo)
- Benjamin Laugueux (yzalis)
@@ -576,7 +578,6 @@ Symfony is the result of the work of many people who made the code better
- Sebastian Blum
- aubx
- Marvin Butkereit
- - Colin O'Dell (colinodell)
- Ricky Su (ricky)
- Gildas Quéméner (gquemener)
- Charles-Henri Bruyand
@@ -596,6 +597,7 @@ Symfony is the result of the work of many people who made the code better
- Stefan Gehrig (sgehrig)
- Hany el-Kerdany
- Wang Jingyu
+ - Webnet team (webnet)
- Åsmund Garfors
- Gunnstein Lye (glye)
- Maxime Douailin
@@ -614,6 +616,7 @@ Symfony is the result of the work of many people who made the code better
- David Fuhr
- Kamil Kokot (pamil)
- Max Grigorian (maxakawizard)
+ - DerManoMann
- mcfedr (mcfedr)
- Rostyslav Kinash
- Maciej Malarz (malarzm)
@@ -692,12 +695,15 @@ 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)
- Jeroen van den Enden (stoefke)
- Pascal Helfenstein
+ - Anthony GRASSIOT (antograssiot)
- Baldur Rensch (brensch)
+ - Pierre Rineau
- Vladyslav Petrovych
- Alex Xandra Albert Sim
- Craig Duncan (duncan3dc)
@@ -729,6 +735,7 @@ Symfony is the result of the work of many people who made the code better
- Joschi Kuphal
- John Bohn (jbohn)
- Marc Morera (mmoreram)
+ - Saif Eddin Gmati (azjezz)
- Smaine Milianni (ismail1432)
- Michael Moravec
- Andrew Hilobok (hilobok)
@@ -747,6 +754,7 @@ Symfony is the result of the work of many people who made the code better
- Xavier Lacot (xavier)
- possum
- Denis Zunke (donalberto)
+ - Ahmadou Waly Ndiaye (waly)
- Philipp Cordes
- Ahmed TAILOULOUTE (ahmedtai)
- Olivier Maisonneuve (olineuve)
@@ -791,6 +799,7 @@ Symfony is the result of the work of many people who made the code better
- Neil Ferreira
- Nathanael Noblet (gnat)
- Indra Gunawan (indragunawan)
+ - Julie Hourcade (juliehde)
- Dmitry Parnas (parnas)
- Paul LE CORRE
- Emanuele Iannone
@@ -902,10 +911,12 @@ Symfony is the result of the work of many people who made the code better
- Michael Tibben
- Billie Thompson
- Sander Marechal
+ - Oleg Golovakhin (doc_tr)
- Icode4Food (icode4food)
- Radosław Benkel
- jean pasqualini (darkilliant)
- Ross Motley (rossmotley)
+ - Julien Fredon
- ttomor
- Mei Gwilym (meigwilym)
- Michael H. Arieli (excelwebzone)
@@ -913,7 +924,6 @@ Symfony is the result of the work of many people who made the code better
- Fred Cox
- Luciano Mammino (loige)
- fabios
- - Webnet team (webnet)
- Sander Coolen (scoolen)
- Nicolas Le Goff (nlegoff)
- Ben Oman
@@ -932,6 +942,7 @@ Symfony is the result of the work of many people who made the code better
- dantleech
- Bastien DURAND (deamon)
- Xavier Leune
+ - Rudy Onfroy
- Tero Alén (tero)
- DerManoMann
- Guillaume Royer
@@ -970,6 +981,7 @@ Symfony is the result of the work of many people who made the code better
- Behnoush norouzali (behnoush)
- Max Beutel
- Antanas Arvasevicius
+ - Pierre Dudoret
- Thomas
- Maximilian Berghoff (electricmaxxx)
- nacho
@@ -978,6 +990,7 @@ Symfony is the result of the work of many people who made the code better
- Sergey Novikov (s12v)
- Marcos Quesada (marcos_quesada)
- Matthew Vickery (mattvick)
+ - Viktor Novikov (panzer_commander)
- Paul Mitchum (paul-m)
- Angel Koilov (po_taka)
- Dan Finnie
@@ -1012,7 +1025,6 @@ Symfony is the result of the work of many people who made the code better
- Thanos Polymeneas (thanos)
- Benoit Garret
- Jakub Sacha
- - DerManoMann
- Olaf Klischat
- orlovv
- Jonathan Hedstrom
@@ -1058,11 +1070,9 @@ Symfony is the result of the work of many people who made the code better
- rchoquet
- gitlost
- Taras Girnyk
- - Anthony GRASSIOT (antograssiot)
- Eduardo García Sanz (coma)
- James Gilliland
- fduch (fduch)
- - Rhodri Pugh (rodnaph)
- David de Boer (ddeboer)
- Ryan Rogers
- Klaus Purer
@@ -1076,6 +1086,7 @@ Symfony is the result of the work of many people who made the code better
- Roger Webb
- Dmitriy Simushev
- Pawel Smolinski
+ - Oxan van Leeuwen
- pkowalczyk
- Max Voloshin (maxvoloshin)
- Nicolas Fabre (nfabre)
@@ -1126,6 +1137,7 @@ Symfony is the result of the work of many people who made the code better
- ConneXNL
- Aharon Perkel
- matze
+ - Rubén Calvo (rubencm)
- Abdul.Mohsen B. A. A
- Benoît Burnichon
- pthompson
@@ -1149,6 +1161,7 @@ Symfony is the result of the work of many people who made the code better
- Erika Heidi Reinaldo (erikaheidi)
- Pierre Tachoire (krichprollsch)
- Marc J. Schmidt (marcjs)
+ - Sebastian Schwarz
- Marco Jantke
- Saem Ghani
- Clément LEFEBVRE
@@ -1179,6 +1192,7 @@ Symfony is the result of the work of many people who made the code better
- Mathieu TUDISCO (mathieutu)
- markusu49
- Steve Frécinaux
+ - Constantine Shtompel
- Jules Lamur
- Renato Mendes Figueiredo
- ShiraNai7
@@ -1220,7 +1234,6 @@ Symfony is the result of the work of many people who made the code better
- Tadcka
- Beth Binkovitz
- Gonzalo Míguez
- - Pierre Rineau
- Romain Geissler
- Adrien Moiruad
- Tomaz Ahlin
@@ -1292,6 +1305,7 @@ Symfony is the result of the work of many people who made the code better
- karl.rixon
- Konrad Mohrfeldt
- Lance Chen
+ - Ciaran McNulty (ciaranmcnulty)
- Andrew (drew)
- kor3k kor3k (kor3k)
- Stelian Mocanita (stelian)
@@ -1303,6 +1317,7 @@ Symfony is the result of the work of many people who made the code better
- Mephistofeles
- Hoffmann András
- Olivier
+ - Cyril PASCAL
- pscheit
- Wybren Koelmans
- Zdeněk Drahoš
@@ -1329,6 +1344,7 @@ Symfony is the result of the work of many people who made the code better
- Artiom
- Jakub Simon
- Bouke Haarsma
+ - Evert Harmeling
- Martin Eckhardt
- natechicago
- Jonathan Poston
@@ -1355,6 +1371,7 @@ Symfony is the result of the work of many people who made the code better
- Harold Iedema
- Arnau González (arnaugm)
- Simon Bouland (bouland)
+ - Ivan Nikolaev (destillat)
- Matthew Foster (mfoster)
- Paul Seiffert (seiffert)
- Vasily Khayrulin (sirian)
@@ -1502,7 +1519,6 @@ Symfony is the result of the work of many people who made the code better
- Fritz Michael Gschwantner
- Alexey Prilipko
- Dmitriy Fedorenko
- - fritzmg
- vlakoff
- bertillon
- Bertalan Attila
@@ -1528,10 +1544,12 @@ Symfony is the result of the work of many people who made the code better
- Joel Marcey
- David Christmann
- root
+ - Vincent Chalnot
- James Hudson
- Tom Maguire
- Richard Quadling
- David Zuelke
+ - Adrian
- Oleg Andreyev
- Pierre Rineau
- Maxim Lovchikov
@@ -1554,6 +1572,7 @@ Symfony is the result of the work of many people who made the code better
- Hein Zaw Htet™
- Ruben Kruiswijk
- Cosmin-Romeo TANASE
+ - Julien Maulny
- Michael J
- Joseph Maarek
- Alexander Menk
@@ -1599,6 +1618,7 @@ Symfony is the result of the work of many people who made the code better
- Kuba Werłos
- Tomas Liubinas
- Alex
+ - Jan Hort
- Klaas Naaijkens
- Daniel González Cerviño
- Rafał
@@ -1964,10 +1984,12 @@ Symfony is the result of the work of many people who made the code better
- Mohamed Karnichi (amiral)
- Andrew Carter (andrewcarteruk)
- Adam Elsodaney (archfizz)
+ - Gregório Bonfante Borba (bonfante)
- Daniel Kolvik (dkvk)
- Marc Lemay (flug)
- Henne Van Och (hennevo)
- Jeroen De Dauw (jeroendedauw)
+ - Jonathan Scheiber (jmsche)
- Daniel Alejandro Castro Arellano (lexcast)
- Maxime COLIN (maximecolin)
- Muharrem Demirci (mdemirci)
diff --git a/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php b/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php
index b9f51144746d5..f7d513a14e09a 100644
--- a/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php
+++ b/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php
@@ -75,7 +75,7 @@ private function addTaggedSubscribers(ContainerBuilder $container)
$connections = isset($tag['connection']) ? array($tag['connection']) : array_keys($this->connections);
foreach ($connections as $con) {
if (!isset($this->connections[$con])) {
- throw new RuntimeException(sprintf('The Doctrine connection "%s" referenced in service "%s" does not exist. Available connections names: %s', $con, $taggedSubscriber, implode(', ', array_keys($this->connections))));
+ throw new RuntimeException(sprintf('The Doctrine connection "%s" referenced in service "%s" does not exist. Available connections names: %s', $con, $id, implode(', ', array_keys($this->connections))));
}
$this->getEventManagerDef($container, $con)->addMethodCall('addEventSubscriber', array(new Reference($id)));
diff --git a/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php b/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php
index 056496ae1325a..966a7baf83079 100644
--- a/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php
+++ b/src/Symfony/Bridge/Monolog/Handler/FirePHPHandler.php
@@ -38,9 +38,10 @@ public function onKernelResponse(FilterResponseEvent $event)
return;
}
- if (!preg_match('{\bFirePHP/\d+\.\d+\b}', $event->getRequest()->headers->get('User-Agent'))
- && !$event->getRequest()->headers->has('X-FirePHP-Version')) {
- $this->sendHeaders = false;
+ $request = $event->getRequest();
+ if (!preg_match('{\bFirePHP/\d+\.\d+\b}', $request->headers->get('User-Agent'))
+ && !$request->headers->has('X-FirePHP-Version')) {
+ self::$sendHeaders = false;
$this->headers = array();
return;
@@ -58,7 +59,7 @@ public function onKernelResponse(FilterResponseEvent $event)
*/
protected function sendHeader($header, $content)
{
- if (!$this->sendHeaders) {
+ if (!self::$sendHeaders) {
return;
}
diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php
index 0290a69fcf688..d1440bb1465a2 100644
--- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php
+++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php
@@ -226,6 +226,10 @@ private static function hasColorSupport()
return false;
}
+ if ('Hyper' === getenv('TERM_PROGRAM')) {
+ return true;
+ }
+
if (DIRECTORY_SEPARATOR === '\\') {
return (function_exists('sapi_windows_vt100_support')
&& sapi_windows_vt100_support(STDOUT))
diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php
index ba523382b66ba..3dd18944de9f3 100644
--- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php
+++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php
@@ -26,7 +26,7 @@ class AddSessionDomainConstraintPass implements CompilerPassInterface
*/
public function process(ContainerBuilder $container)
{
- if (!$container->hasParameter('session.storage.options')) {
+ if (!$container->hasParameter('session.storage.options') || !$container->has('security.http_utils')) {
return;
}
@@ -34,7 +34,6 @@ public function process(ContainerBuilder $container)
$domainRegexp = empty($sessionOptions['cookie_domain']) ? '%s' : sprintf('(?:%%s|(?:.+\.)?%s)', preg_quote(trim($sessionOptions['cookie_domain'], '.')));
$domainRegexp = (empty($sessionOptions['cookie_secure']) ? 'https?://' : 'https://').$domainRegexp;
- // if the service doesn't exist, an exception must be thrown - ignoring would put security at risk
$container->findDefinition('security.http_utils')->addArgument(sprintf('{^%s$}i', $domainRegexp));
}
}
diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php
index e12f3a64f31fe..7d49ad3dd4ec6 100644
--- a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php
+++ b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php
@@ -96,19 +96,6 @@ public function testNoSession()
$this->assertTrue($utils->createRedirectResponse($request, 'http://pirate.com/foo')->isRedirect('http://pirate.com/foo'));
}
- /**
- * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException
- * @expectedExceptionMessage You have requested a non-existent service "security.http_utils".
- */
- public function testNoHttpUtils()
- {
- $container = new ContainerBuilder();
- $container->setParameter('session.storage.options', array());
-
- $pass = new AddSessionDomainConstraintPass();
- $pass->process($container);
- }
-
private function createContainer($sessionStorageOptions)
{
$container = new ContainerBuilder();
diff --git a/src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php b/src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php
index 1cd134fbc78f2..ef259b338d9f2 100644
--- a/src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php
+++ b/src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php
@@ -38,8 +38,6 @@ public function __construct($handler)
if ($handler instanceof FragmentHandler) {
$this->handler = $handler;
} elseif ($handler instanceof ContainerInterface) {
- @trigger_error('The ability to pass a ContainerInterface instance as a first argument to '.__METHOD__.' method is deprecated since Symfony 2.7 and will be removed in 3.0. Pass a FragmentHandler instance instead.', E_USER_DEPRECATED);
-
$this->handler = $handler->get('fragment.handler');
} else {
throw new \BadFunctionCallException(sprintf('%s takes a FragmentHandler or a ContainerInterface object as its first argument.', __METHOD__));
diff --git a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig
index 65d44716fcf83..b5e21a6ebf05d 100644
--- a/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig
+++ b/src/Symfony/Bundle/WebProfilerBundle/Resources/views/Profiler/toolbar.css.twig
@@ -60,6 +60,7 @@
.sf-toolbarreset svg,
.sf-toolbarreset img {
height: 20px;
+ width: 20px;
display: inline-block;
}
@@ -150,11 +151,11 @@
margin-bottom: 0;
}
-.sf-toolbar-block .sf-toolbar-info-piece a {
+div.sf-toolbar .sf-toolbar-block .sf-toolbar-info-piece a {
color: #99CDD8;
text-decoration: underline;
}
-.sf-toolbar-block .sf-toolbar-info-piece a:hover {
+div.sf-toolbar .sf-toolbar-block a:hover {
text-decoration: none;
}
@@ -263,6 +264,7 @@
border-width: 0;
position: relative;
top: 8px;
+ vertical-align: baseline;
}
.sf-toolbar-block .sf-toolbar-icon img + span,
diff --git a/src/Symfony/Component/Console/Command/Command.php b/src/Symfony/Component/Console/Command/Command.php
index c8db0cff07f3a..ba93677715f4b 100644
--- a/src/Symfony/Component/Console/Command/Command.php
+++ b/src/Symfony/Component/Console/Command/Command.php
@@ -210,7 +210,7 @@ public function run(InputInterface $input, OutputInterface $output)
if (function_exists('cli_set_process_title')) {
if (!@cli_set_process_title($this->processTitle)) {
if ('Darwin' === PHP_OS) {
- $output->writeln('Running "cli_get_process_title" as an unprivileged user is not supported on MacOS.');
+ $output->writeln('Running "cli_set_process_title" as an unprivileged user is not supported on MacOS.', OutputInterface::VERBOSITY_VERY_VERBOSE);
} else {
cli_set_process_title($this->processTitle);
}
diff --git a/src/Symfony/Component/Console/Output/OutputInterface.php b/src/Symfony/Component/Console/Output/OutputInterface.php
index dc6d08ad36a9c..3bf2157c1ad15 100644
--- a/src/Symfony/Component/Console/Output/OutputInterface.php
+++ b/src/Symfony/Component/Console/Output/OutputInterface.php
@@ -33,7 +33,7 @@ interface OutputInterface
/**
* Writes a message to the output.
*
- * @param string|array $messages The message as an array of lines or a single string
+ * @param string|array $messages The message as an array of strings or a single string
* @param bool $newline Whether to add a newline
* @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL
*/
@@ -42,7 +42,7 @@ public function write($messages, $newline = false, $options = 0);
/**
* Writes a message to the output and adds a newline at the end.
*
- * @param string|array $messages The message as an array of lines of a single string
+ * @param string|array $messages The message as an array of strings or a single string
* @param int $options A bitmask of options (one of the OUTPUT or VERBOSITY constants), 0 is considered the same as self::OUTPUT_NORMAL | self::VERBOSITY_NORMAL
*/
public function writeln($messages, $options = 0);
diff --git a/src/Symfony/Component/Console/Output/StreamOutput.php b/src/Symfony/Component/Console/Output/StreamOutput.php
index 5fc5d01e14718..6eb300ea322ed 100644
--- a/src/Symfony/Component/Console/Output/StreamOutput.php
+++ b/src/Symfony/Component/Console/Output/StreamOutput.php
@@ -93,6 +93,10 @@ protected function doWrite($message, $newline)
*/
protected function hasColorSupport()
{
+ if ('Hyper' === getenv('TERM_PROGRAM')) {
+ return true;
+ }
+
if (DIRECTORY_SEPARATOR === '\\') {
return (function_exists('sapi_windows_vt100_support')
&& @sapi_windows_vt100_support($this->stream))
diff --git a/src/Symfony/Component/Console/Style/SymfonyStyle.php b/src/Symfony/Component/Console/Style/SymfonyStyle.php
index a21f3c16e463b..14e641bbfcddc 100644
--- a/src/Symfony/Component/Console/Style/SymfonyStyle.php
+++ b/src/Symfony/Component/Console/Style/SymfonyStyle.php
@@ -271,7 +271,7 @@ public function createProgressBar($max = 0)
{
$progressBar = parent::createProgressBar($max);
- if ('\\' !== DIRECTORY_SEPARATOR) {
+ if ('\\' !== DIRECTORY_SEPARATOR || 'Hyper' === getenv('TERM_PROGRAM')) {
$progressBar->setEmptyBarCharacter('░'); // light shade character \u2591
$progressBar->setProgressCharacter('');
$progressBar->setBarCharacter('▓'); // dark shade character \u2593
diff --git a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php
index 2aa30026dcbcd..1960bf9d893bb 100644
--- a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php
+++ b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php
@@ -493,10 +493,10 @@ public function get($id, $invalidBehavior = ContainerInterface::EXCEPTION_ON_INV
* the parameters passed to the container constructor to have precedence
* over the loaded ones.
*
- * $container = new ContainerBuilder(array('foo' => 'bar'));
+ * $container = new ContainerBuilder(new ParameterBag(array('foo' => 'bar')));
* $loader = new LoaderXXX($container);
* $loader->load('resource_name');
- * $container->register('foo', new stdClass());
+ * $container->register('foo', 'stdClass');
*
* In the above example, even if the loaded resource defines a foo
* parameter, the value will still be 'bar' as defined in the ContainerBuilder
diff --git a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
index db22888d22783..149fd5b33ff20 100644
--- a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
+++ b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php
@@ -99,7 +99,7 @@ private function addService($id, Definition $definition)
}
if ($definition->isDeprecated()) {
- $code .= sprintf(" deprecated: %s\n", $definition->getDeprecationMessage('%service_id%'));
+ $code .= sprintf(" deprecated: %s\n", $this->dumper->dump($definition->getDeprecationMessage('%service_id%')));
}
if ($definition->isAutowired()) {
diff --git a/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php b/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php
index a3539bc1b421e..8562181a2915c 100644
--- a/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php
+++ b/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php
@@ -75,7 +75,7 @@ public function isDisabled()
/**
* Sets the value of the field.
*
- * @param string $value The value of the field
+ * @param string|array $value The value of the field
*/
public function select($value)
{
diff --git a/src/Symfony/Component/Filesystem/LockHandler.php b/src/Symfony/Component/Filesystem/LockHandler.php
index 8290e5283ab00..6d85c51b8cb4c 100644
--- a/src/Symfony/Component/Filesystem/LockHandler.php
+++ b/src/Symfony/Component/Filesystem/LockHandler.php
@@ -77,7 +77,7 @@ public function lock($blocking = false)
if (!$this->handle = fopen($this->file, 'r+') ?: fopen($this->file, 'r')) {
if ($this->handle = fopen($this->file, 'x')) {
- chmod($this->file, 0444);
+ chmod($this->file, 0666);
} elseif (!$this->handle = fopen($this->file, 'r+') ?: fopen($this->file, 'r')) {
usleep(100); // Give some time for chmod() to complete
$this->handle = fopen($this->file, 'r+') ?: fopen($this->file, 'r');
diff --git a/src/Symfony/Component/Form/FormConfigBuilder.php b/src/Symfony/Component/Form/FormConfigBuilder.php
index 4ec16782c6074..14150179d8ea9 100644
--- a/src/Symfony/Component/Form/FormConfigBuilder.php
+++ b/src/Symfony/Component/Form/FormConfigBuilder.php
@@ -138,7 +138,7 @@ class FormConfigBuilder implements FormConfigBuilderInterface
private $data;
/**
- * @var string
+ * @var string|null
*/
private $dataClass;
@@ -181,7 +181,7 @@ class FormConfigBuilder implements FormConfigBuilderInterface
* Creates an empty form configuration.
*
* @param string|int $name The form name
- * @param string $dataClass The class of the form's data
+ * @param string|null $dataClass The class of the form's data
* @param EventDispatcherInterface $dispatcher The event dispatcher
* @param array $options The form options
*
diff --git a/src/Symfony/Component/HttpFoundation/HeaderBag.php b/src/Symfony/Component/HttpFoundation/HeaderBag.php
index d1065e797740a..890dabd130333 100644
--- a/src/Symfony/Component/HttpFoundation/HeaderBag.php
+++ b/src/Symfony/Component/HttpFoundation/HeaderBag.php
@@ -101,11 +101,11 @@ public function add(array $headers)
/**
* Returns a header value by name.
*
- * @param string $key The header name
- * @param string|string[] $default The default value
- * @param bool $first Whether to return the first value or all header values
+ * @param string $key The header name
+ * @param string|string[]|null $default The default value
+ * @param bool $first Whether to return the first value or all header values
*
- * @return string|string[] The first header value or default value if $first is true, an array of values otherwise
+ * @return string|string[]|null The first header value or default value if $first is true, an array of values otherwise
*/
public function get($key, $default = null, $first = true)
{
diff --git a/src/Symfony/Component/HttpFoundation/Response.php b/src/Symfony/Component/HttpFoundation/Response.php
index 9b4bb4cc53807..3a1b5ca8f8858 100644
--- a/src/Symfony/Component/HttpFoundation/Response.php
+++ b/src/Symfony/Component/HttpFoundation/Response.php
@@ -64,7 +64,12 @@ class Response
const HTTP_UNPROCESSABLE_ENTITY = 422; // RFC4918
const HTTP_LOCKED = 423; // RFC4918
const HTTP_FAILED_DEPENDENCY = 424; // RFC4918
+
+ /**
+ * @deprecated
+ */
const HTTP_RESERVED_FOR_WEBDAV_ADVANCED_COLLECTIONS_EXPIRED_PROPOSAL = 425; // RFC2817
+ const HTTP_TOO_EARLY = 425; // RFC-ietf-httpbis-replay-04
const HTTP_UPGRADE_REQUIRED = 426; // RFC2817
const HTTP_PRECONDITION_REQUIRED = 428; // RFC6585
const HTTP_TOO_MANY_REQUESTS = 429; // RFC6585
@@ -169,7 +174,7 @@ class Response
422 => 'Unprocessable Entity', // RFC4918
423 => 'Locked', // RFC4918
424 => 'Failed Dependency', // RFC4918
- 425 => 'Reserved for WebDAV advanced collections expired proposal', // RFC2817
+ 425 => 'Too Early', // RFC-ietf-httpbis-replay-04
426 => 'Upgrade Required', // RFC2817
428 => 'Precondition Required', // RFC6585
429 => 'Too Many Requests', // RFC6585
diff --git a/src/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php b/src/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
index abbf37ee7c33c..f9df69e90782f 100644
--- a/src/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
+++ b/src/Symfony/Component/HttpFoundation/Session/Attribute/NamespacedAttributeBag.php
@@ -124,7 +124,13 @@ protected function &resolveAttributePath($name, $writeContext = false)
foreach ($parts as $part) {
if (null !== $array && !array_key_exists($part, $array)) {
- $array[$part] = $writeContext ? array() : null;
+ if (!$writeContext) {
+ $null = null;
+
+ return $null;
+ }
+
+ $array[$part] = array();
}
$array = &$array[$part];
diff --git a/src/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php b/src/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
index 80e97f17cdff3..f53c9dae6c0aa 100644
--- a/src/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
+++ b/src/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.php
@@ -24,7 +24,7 @@ interface FlashBagInterface extends SessionBagInterface
* Adds a flash message for type.
*
* @param string $type
- * @param string $message
+ * @param mixed $message
*/
public function add($type, $message);
diff --git a/src/Symfony/Component/HttpFoundation/StreamedResponse.php b/src/Symfony/Component/HttpFoundation/StreamedResponse.php
index 01e8cf8c36df2..41ba4dc4e78c3 100644
--- a/src/Symfony/Component/HttpFoundation/StreamedResponse.php
+++ b/src/Symfony/Component/HttpFoundation/StreamedResponse.php
@@ -134,4 +134,16 @@ public function getContent()
{
return false;
}
+
+ /**
+ * {@inheritdoc}
+ *
+ * @return $this
+ */
+ public function setNotModified()
+ {
+ $this->setCallback(function () {});
+
+ return parent::setNotModified();
+ }
}
diff --git a/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php b/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
index 46fcc5f3eb774..ffd8eb354f15a 100644
--- a/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
+++ b/src/Symfony/Component/HttpFoundation/Tests/ResponseTest.php
@@ -126,7 +126,7 @@ public function testMustRevalidateWithProxyRevalidateCacheControlHeader()
public function testSetNotModified()
{
- $response = new Response();
+ $response = new Response('foo');
$modified = $response->setNotModified();
$this->assertObjectHasAttribute('headers', $modified);
$this->assertObjectHasAttribute('content', $modified);
@@ -135,6 +135,11 @@ public function testSetNotModified()
$this->assertObjectHasAttribute('statusText', $modified);
$this->assertObjectHasAttribute('charset', $modified);
$this->assertEquals(304, $modified->getStatusCode());
+
+ ob_start();
+ $modified->sendContent();
+ $string = ob_get_clean();
+ $this->assertEmpty($string);
}
public function testIsSuccessful()
diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
index f074ce1b26261..ec4cd5ad1a146 100644
--- a/src/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
+++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Attribute/NamespacedAttributeBagTest.php
@@ -82,6 +82,17 @@ public function testHas($key, $value, $exists)
$this->assertEquals($exists, $this->bag->has($key));
}
+ /**
+ * @dataProvider attributesProvider
+ */
+ public function testHasNoSideEffect($key, $value, $expected)
+ {
+ $expected = json_encode($this->bag->all());
+ $this->bag->has($key);
+
+ $this->assertEquals($expected, json_encode($this->bag->all()));
+ }
+
/**
* @dataProvider attributesProvider
*/
@@ -96,6 +107,17 @@ public function testGetDefaults()
$this->assertEquals('default', $this->bag->get('user2.login', 'default'));
}
+ /**
+ * @dataProvider attributesProvider
+ */
+ public function testGetNoSideEffect($key, $value, $expected)
+ {
+ $expected = json_encode($this->bag->all());
+ $this->bag->get($key);
+
+ $this->assertEquals($expected, json_encode($this->bag->all()));
+ }
+
/**
* @dataProvider attributesProvider
*/
diff --git a/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php b/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
index b44429d8989d8..3fe0122f4fd05 100644
--- a/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
+++ b/src/Symfony/Component/HttpFoundation/Tests/Session/Flash/FlashBagTest.php
@@ -74,6 +74,18 @@ public function testPeek()
$this->assertEquals(array('A previous flash message'), $this->bag->peek('notice'));
}
+ public function testAdd()
+ {
+ $tab = array('bar' => 'baz');
+ $this->bag->add('string_message', 'lorem');
+ $this->bag->add('object_message', new \stdClass());
+ $this->bag->add('array_message', $tab);
+
+ $this->assertEquals(array('lorem'), $this->bag->get('string_message'));
+ $this->assertEquals(array(new \stdClass()), $this->bag->get('object_message'));
+ $this->assertEquals(array($tab), $this->bag->get('array_message'));
+ }
+
public function testGet()
{
$this->assertEquals(array(), $this->bag->get('non_existing'));
@@ -112,6 +124,19 @@ public function testKeys()
$this->assertEquals(array('notice'), $this->bag->keys());
}
+ public function testSetAll()
+ {
+ $this->bag->add('one_flash', 'Foo');
+ $this->bag->add('another_flash', 'Bar');
+ $this->assertTrue($this->bag->has('one_flash'));
+ $this->assertTrue($this->bag->has('another_flash'));
+ $this->bag->setAll(array('unique_flash' => 'FooBar'));
+ $this->assertFalse($this->bag->has('one_flash'));
+ $this->assertFalse($this->bag->has('another_flash'));
+ $this->assertSame(array('unique_flash' => 'FooBar'), $this->bag->all());
+ $this->assertSame(array(), $this->bag->all());
+ }
+
public function testPeekAll()
{
$this->bag->set('notice', 'Foo');
diff --git a/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php b/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php
index 2ccb6841ad84b..66effe595df71 100644
--- a/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php
+++ b/src/Symfony/Component/HttpFoundation/Tests/StreamedResponseTest.php
@@ -132,4 +132,22 @@ public function testReturnThis()
$this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $response->sendHeaders());
$this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $response->sendHeaders());
}
+
+ public function testSetNotModified()
+ {
+ $response = new StreamedResponse(function () { echo 'foo'; });
+ $modified = $response->setNotModified();
+ $this->assertObjectHasAttribute('headers', $modified);
+ $this->assertObjectHasAttribute('content', $modified);
+ $this->assertObjectHasAttribute('version', $modified);
+ $this->assertObjectHasAttribute('statusCode', $modified);
+ $this->assertObjectHasAttribute('statusText', $modified);
+ $this->assertObjectHasAttribute('charset', $modified);
+ $this->assertEquals(304, $modified->getStatusCode());
+
+ ob_start();
+ $modified->sendContent();
+ $string = ob_get_clean();
+ $this->assertEmpty($string);
+ }
}
diff --git a/src/Symfony/Component/HttpKernel/Event/GetResponseEvent.php b/src/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
index f7745ea3dc160..c25a0f1cf1a1a 100644
--- a/src/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
+++ b/src/Symfony/Component/HttpKernel/Event/GetResponseEvent.php
@@ -29,7 +29,7 @@ class GetResponseEvent extends KernelEvent
/**
* Returns the response object.
*
- * @return Response
+ * @return Response|null
*/
public function getResponse()
{
diff --git a/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php b/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php
index 3252f061e5fc7..4ee89d6e8c05f 100644
--- a/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php
+++ b/src/Symfony/Component/HttpKernel/Fragment/HIncludeFragmentRenderer.php
@@ -135,7 +135,7 @@ private function templateExists($template)
if ($this->templating instanceof EngineInterface) {
try {
return $this->templating->exists($template);
- } catch (\InvalidArgumentException $e) {
+ } catch (\Exception $e) {
return false;
}
}
diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php
index e628f1f3591fe..d97d56d20109c 100644
--- a/src/Symfony/Component/HttpKernel/Kernel.php
+++ b/src/Symfony/Component/HttpKernel/Kernel.php
@@ -59,11 +59,11 @@ abstract class Kernel implements KernelInterface, TerminableInterface
protected $startTime;
protected $loadClassCache;
- const VERSION = '2.8.42';
- const VERSION_ID = 20842;
+ const VERSION = '2.8.43';
+ const VERSION_ID = 20843;
const MAJOR_VERSION = 2;
const MINOR_VERSION = 8;
- const RELEASE_VERSION = 42;
+ const RELEASE_VERSION = 43;
const EXTRA_VERSION = '';
const END_OF_MAINTENANCE = '11/2018';
diff --git a/src/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php b/src/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php
index 1be052e5e62fd..7171c71bc3af4 100644
--- a/src/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php
+++ b/src/Symfony/Component/HttpKernel/Tests/Fragment/HIncludeFragmentRendererTest.php
@@ -86,4 +86,17 @@ public function testRenderWithDefaultText()
$strategy = new HIncludeFragmentRenderer($engine);
$this->assertEquals('default', $strategy->render('/foo', Request::create('/'), array('default' => 'default'))->getContent());
}
+
+ public function testRenderWithEngineAndDefaultText()
+ {
+ $engine = $this->getMockBuilder('Symfony\\Component\\Templating\\EngineInterface')->getMock();
+ $engine->expects($this->once())
+ ->method('exists')
+ ->with('loading...')
+ ->will($this->throwException(new \RuntimeException()));
+
+ // only default
+ $strategy = new HIncludeFragmentRenderer($engine);
+ $this->assertEquals('loading...', $strategy->render('/foo', Request::create('/'), array('default' => 'loading...'))->getContent());
+ }
}
diff --git a/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php b/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php
index 8a9f2477b2ea8..fc02e5feb926c 100644
--- a/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php
+++ b/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php
@@ -77,14 +77,7 @@ public function getUser()
}
/**
- * Sets the user in the token.
- *
- * The user can be a UserInterface instance, or an object implementing
- * a __toString method or the username as a regular string.
- *
- * @param string|object $user The user
- *
- * @throws \InvalidArgumentException
+ * {@inheritdoc}
*/
public function setUser($user)
{
diff --git a/src/Symfony/Component/Security/Core/Authentication/Token/TokenInterface.php b/src/Symfony/Component/Security/Core/Authentication/Token/TokenInterface.php
index 4e1dd7b2fc46b..583700c178a71 100644
--- a/src/Symfony/Component/Security/Core/Authentication/Token/TokenInterface.php
+++ b/src/Symfony/Component/Security/Core/Authentication/Token/TokenInterface.php
@@ -47,17 +47,22 @@ public function getCredentials();
/**
* Returns a user representation.
*
- * @return mixed Can be a UserInterface instance, an object implementing a __toString method,
- * or the username as a regular string
+ * @return string|object Can be a UserInterface instance, an object implementing a __toString method,
+ * or the username as a regular string
*
* @see AbstractToken::setUser()
*/
public function getUser();
/**
- * Sets a user.
+ * Sets the user in the token.
*
- * @param mixed $user
+ * The user can be a UserInterface instance, or an object implementing
+ * a __toString method or the username as a regular string.
+ *
+ * @param string|object $user The user
+ *
+ * @throws \InvalidArgumentException
*/
public function setUser($user);
diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php
index 88f5f9273dae4..b1975122d19e7 100644
--- a/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php
+++ b/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php
@@ -158,7 +158,7 @@ public function setIgnoredAttributes(array $ignoredAttributes)
*/
public function setCamelizedAttributes(array $camelizedAttributes)
{
- @trigger_error(sprintf('%s is deprecated since Symfony 2.7 and will be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.', __METHOD__), E_USER_DEPRECATED);
+ @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 2.7 and will be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.', __METHOD__), E_USER_DEPRECATED);
if ($this->nameConverter && !$this->nameConverter instanceof CamelCaseToSnakeCaseNameConverter) {
throw new LogicException(sprintf('%s cannot be called if a custom Name Converter is defined.', __METHOD__));
@@ -237,7 +237,7 @@ protected function handleCircularReference($object)
*/
protected function formatAttribute($attributeName)
{
- @trigger_error(sprintf('%s is deprecated since Symfony 2.7 and will be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.', __METHOD__), E_USER_DEPRECATED);
+ @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 2.7 and will be removed in 3.0. Use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter instead.', __METHOD__), E_USER_DEPRECATED);
return $this->nameConverter ? $this->nameConverter->normalize($attributeName) : $attributeName;
}
diff --git a/src/Symfony/Component/Translation/PluralizationRules.php b/src/Symfony/Component/Translation/PluralizationRules.php
index 2b7b118336938..80de7aabdf06c 100644
--- a/src/Symfony/Component/Translation/PluralizationRules.php
+++ b/src/Symfony/Component/Translation/PluralizationRules.php
@@ -144,6 +144,7 @@ public static function get($number, $locale)
case 'bs':
case 'hr':
case 'ru':
+ case 'sh':
case 'sr':
case 'uk':
return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf
index a33eb8239153b..dc6f95ff130fa 100644
--- a/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf
+++ b/src/Symfony/Component/Validator/Resources/translations/validators.bg.xlf
@@ -314,6 +314,10 @@
This is not a valid Business Identifier Code (BIC).Невалиден бизнес идентификационен код (BIC).
+
+ Error
+ Грешка
+