Merge branch '2.3' into 2.5

* 2.3:
  Remove aligned '=>' and '='
  Break infinite loop while resolving aliases
  [Security][listener] change priority of switchuser
  Improved the phpdoc for security token classes
  bumped Symfony version to 2.3.22
  updated VERSION for 2.3.21
  update CONTRIBUTORS for 2.3.21
  updated CHANGELOG for 2.3.21

Conflicts:
	src/Symfony/Bridge/Propel1/Form/ChoiceList/ModelChoiceList.php
	src/Symfony/Bridge/Propel1/Form/Type/ModelType.php
	src/Symfony/Bridge/Propel1/Logger/PropelLogger.php
	src/Symfony/Bridge/Propel1/Tests/Fixtures/ItemQuery.php
	src/Symfony/Bundle/FrameworkBundle/Command/RouterDebugCommand.php
	src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php
	src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php
	src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php
	src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LocalizedController.php
	src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/FormLoginBundle/Controller/LoginController.php
	src/Symfony/Component/Console/Descriptor/JsonDescriptor.php
	src/Symfony/Component/Console/Formatter/OutputFormatterStyle.php
	src/Symfony/Component/Console/Helper/ProgressHelper.php
	src/Symfony/Component/Debug/ErrorHandler.php
	src/Symfony/Component/DependencyInjection/Container.php
	src/Symfony/Component/Finder/Shell/Command.php
	src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php
	src/Symfony/Component/Form/Extension/Core/Type/CollectionType.php
	src/Symfony/Component/Form/Extension/Core/Type/FormType.php
	src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php
	src/Symfony/Component/Form/Extension/Core/Type/NumberType.php
	src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php
	src/Symfony/Component/HttpFoundation/File/UploadedFile.php
	src/Symfony/Component/HttpKernel/DataCollector/LoggerDataCollector.php
	src/Symfony/Component/HttpKernel/Debug/TraceableEventDispatcher.php
	src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
	src/Symfony/Component/HttpKernel/Kernel.php
	src/Symfony/Component/HttpKernel/Tests/EventListener/TestSessionListenerTest.php
	src/Symfony/Component/HttpKernel/Tests/HttpCache/TestMultipleHttpKernel.php
	src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php
	src/Symfony/Component/Routing/Loader/AnnotationClassLoader.php
	src/Symfony/Component/Routing/Route.php
	src/Symfony/Component/Routing/Tests/Loader/AnnotationClassLoaderTest.php
	src/Symfony/Component/Security/Tests/Core/Validator/Constraints/UserPasswordValidatorTest.php
	src/Symfony/Component/Templating/PhpEngine.php
	src/Symfony/Component/Validator/Constraints/ImageValidator.php
	src/Symfony/Component/Validator/Constraints/TypeValidator.php
This commit is contained in:
Fabien Potencier 2014-10-26 08:41:27 +01:00
commit b5b12a54f7
234 changed files with 1475 additions and 1441 deletions

View File

@ -7,6 +7,17 @@ in 2.3 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.3.0...v2.3.1
* 2.3.21 (2014-10-24)
* bug #11696 [Form] Fix #11694 - Enforce options value type check in some form types (kix)
* bug #12209 [FrameworkBundle] Fixed ide links (hason)
* bug #12208 Add missing argument (WouterJ)
* bug #12197 [TwigBundle] do not pass a template reference to twig (Tobion)
* bug #12196 [TwigBundle] show correct fallback exception template in debug mode (Tobion)
* bug #12187 [CssSelector] don't raise warnings when exception is thrown (xabbuh)
* bug #11998 [Intl] Integrated ICU data into Intl component #2 (webmozart)
* bug #11920 [Intl] Integrated ICU data into Intl component #1 (webmozart)
* 2.3.20 (2014-09-28)
* bug #9453 [Form][DateTime] Propagate invalid_message & invalid_message_parameters to date & time (egeloen)

View File

@ -8,8 +8,8 @@ Symfony2 is the result of the work of many people who made the code better
- Bernhard Schussek (bschussek)
- Victor Berchet (victor)
- Jordi Boggiano (seldaek)
- Johannes S (johannes)
- Tobias Schultze (tobion)
- Johannes S (johannes)
- Kris Wallsmith (kriswallsmith)
- Christophe Coevoet (stof)
- Pascal Borreli (pborreli)
@ -27,6 +27,7 @@ Symfony2 is the result of the work of many people who made the code better
- Martin Hasoň (hason)
- Eriksen Costa (eriksencosta)
- Nicolas Grekas (nicolas-grekas)
- Christian Flothmann (xabbuh)
- Jonathan Wage (jwage)
- Grégoire Pineau (lyrixx)
- Alexandre Salomé (alexandresalome)
@ -34,7 +35,6 @@ Symfony2 is the result of the work of many people who made the code better
- ornicar
- stealth35 (stealth35)
- Alexander Mols (asm89)
- Christian Flothmann (xabbuh)
- Bulat Shakirzyanov (avalanche123)
- Francis Besset (francisbesset)
- Saša Stamenković (umpirsky)
@ -76,9 +76,9 @@ Symfony2 is the result of the work of many people who made the code better
- Jacob Dreesen (jdreesen)
- Florian Voutzinos (florianv)
- Adrien Brault (adrienbrault)
- Gábor Egyed (1ed)
- Fabien Pennequin (fabienpennequin)
- Jérôme Tamarelle (gromnan)
- Gábor Egyed (1ed)
- Michal Piotrowski (eventhorizon)
- Gordon Franke (gimler)
- Robert Schönthal (digitalkaoz)
@ -89,12 +89,14 @@ Symfony2 is the result of the work of many people who made the code better
- Peter Kokot (maastermedia)
- David Buchmann (dbu)
- Pablo Godel (pgodel)
- Eric GELOEN (gelo)
- Jérémie Augustin (jaugustin)
- Rafael Dohms (rdohms)
- Eric GELOEN (gelo)
- Jérémy DERUSSÉ (jderusse)
- Tigran Azatyan (tigranazatyan)
- Javier Eguiluz (javier.eguiluz)
- Richard Shank (iampersistent)
- Kévin Dunglas (dunglas)
- Clemens Tolboom
- Helmer Aaviksoo
- Sebastiaan Stok (sstok)
@ -106,7 +108,6 @@ Symfony2 is the result of the work of many people who made the code better
- Artur Kotyrba
- Guilherme Blanco (guilhermeblanco)
- Rouven Weßling (realityking)
- Jérémy DERUSSÉ (jderusse)
- Stefano Sala (stefano.sala)
- Dmitrii Chekaliuk (lazyhammer)
- Clément JOBEILI (dator)
@ -129,7 +130,6 @@ Symfony2 is the result of the work of many people who made the code better
- Pierre Minnieur (pminnieur)
- fivestar
- Dominique Bongiraud
- Kévin Dunglas (dunglas)
- Leszek Prabucki (l3l0)
- François Zaninotto (fzaninotto)
- Dustin Whittle (dustinwhittle)
@ -138,7 +138,9 @@ Symfony2 is the result of the work of many people who made the code better
- Sven Paulus (subsven)
- Lars Strojny (lstrojny)
- Joel Wurtz (brouznouf)
- Peter Rehm (rpet)
- Rui Marinho (ruimarinho)
- Matthias Pigulla (mpdude)
- Julien Brochet (mewt)
- Tugdual Saunier (tucksaun)
- Sergey Linnik (linniksa)
@ -156,10 +158,9 @@ Symfony2 is the result of the work of many people who made the code better
- Xavier Perez
- Arjen Brouwer (arjenjb)
- Katsuhiro OGAWA
- Peter Rehm (rpet)
- Alif Rachmawadi
- Pierre-Yves LEBECQ (pylebecq)
- Matthias Pigulla (mpdude)
- Eugene Leonovich (rybakit)
- Joseph Rouff (rouffj)
- Félix Labrecque (woodspire)
- GordonsLondon
@ -170,6 +171,7 @@ Symfony2 is the result of the work of many people who made the code better
- Thomas Adam
- Albert Casademont (acasademont)
- jdhoek
- Nikita Konstantinov
- Wodor Wodorski
- julien pauli (jpauli)
- Beau Simensen (simensen)
@ -201,12 +203,13 @@ Symfony2 is the result of the work of many people who made the code better
- Adrian Rudnik (kreischweide)
- Francesc Rosàs (frosas)
- Julien Galenski (ruian)
- Eugene Leonovich (rybakit)
- Bongiraud Dominique
- janschoenherr
- Marco Pivetta (ocramius)
- Ricard Clau (ricardclau)
- Iltar van der Berg
- Erin Millard
- John Kary (johnkary)
- Matthew Lewinski (lewinski)
- alquerci
- Francesco Levorato
@ -234,6 +237,7 @@ Symfony2 is the result of the work of many people who made the code better
- Loïc Chardonnet (gnusat)
- Marek Kalnik (marekkalnik)
- Vyacheslav Salakhutdinov (megazoll)
- Alex Pott
- Tamas Szijarto
- Pavel Volokitin (pvolok)
- Endre Fejes
@ -258,13 +262,10 @@ Symfony2 is the result of the work of many people who made the code better
- Brian King
- Michel Salib (michelsalib)
- geoffrey
- Nikita Konstantinov
- Matthieu Auger (matthieuauger)
- Jeanmonod David (jeanmonod)
- Iltar van der Berg
- Jan Schumann
- Niklas Fiekas
- John Kary (johnkary)
- Ruben Gonzalez (rubenrua)
- lancergr
- Antonio J. García Lagar (ajgarlag)
@ -283,6 +284,7 @@ Symfony2 is the result of the work of many people who made the code better
- Marcin Sikoń (marphi)
- franek (franek)
- Adam Harvey
- Alex Bakhturin
- François-Xavier de Guillebon (de-gui_f)
- boombatower
- Fabrice Bernhard (fabriceb)
@ -312,7 +314,6 @@ Symfony2 is the result of the work of many people who made the code better
- alexpods
- Erik Trapman (eriktrapman)
- De Cock Xavier (xdecock)
- Alex Pott
- Norbert Orzechowicz (norzechowicz)
- Matthijs van den Bos (matthijs)
- Nils Adermann (naderman)
@ -385,7 +386,6 @@ Symfony2 is the result of the work of many people who made the code better
- Arturs Vonda
- Sascha Grossenbacher
- Ben Davies (bendavies)
- Alex Bakhturin
- Simon Schick (simonsimcity)
- redstar504
- Hossein Bukhamsin
@ -559,6 +559,7 @@ Symfony2 is the result of the work of many people who made the code better
- Christian Neff
- Per Sandström (per)
- Goran Juric
- Laurent Ghirardotti (laurentg)
- Lin Clark
- Jeremy David (jeremy.david)
- Troy McCabe
@ -579,6 +580,7 @@ Symfony2 is the result of the work of many people who made the code better
- Benjamin Paap (benjaminpaap)
- Christian
- Sergii Smertin (nfx)
- Artur Eshenbrener
- Eddie Jaoude
- Haritz Iturbe (hizai)
- Nerijus Arlauskas (nercury)
@ -628,6 +630,7 @@ Symfony2 is the result of the work of many people who made the code better
- Patrick Landolt (scube)
- WybrenKoelmans
- Derek Lambert
- MightyBranch
- Kacper Gunia (cakper)
- Felicitus
- Krzysztof Przybyszewski
@ -672,6 +675,7 @@ Symfony2 is the result of the work of many people who made the code better
- Marco Jantke
- Saem Ghani
- Sebastian Utz
- Adrien Gallou (agallou)
- Karol Sójko (karolsojko)
- sl_toto (sl_toto)
- Sébastien HOUZÉ
@ -814,6 +818,7 @@ Symfony2 is the result of the work of many people who made the code better
- Andrey Ryaguzov
- Manatsawin Hanmongkolchai
- Gunther Konig
- Maciej Schmidt
- flack
- František Bereň
- Christoph Nissle (derstoffel)
@ -860,6 +865,7 @@ Symfony2 is the result of the work of many people who made the code better
- Daan van Renterghem
- Bram Van der Sype (brammm)
- Julien Moulin (lizjulien)
- Yannick Warnier (ywarnier)
- Kevin Decherf
- dened
- Sam Ward
@ -901,6 +907,7 @@ Symfony2 is the result of the work of many people who made the code better
- Robert Campbell
- Matt Lehner
- Ruben Kruiswijk
- Michael J
- Alex Pods
- timaschew
- Ian Phillips
@ -1088,6 +1095,7 @@ Symfony2 is the result of the work of many people who made the code better
- Moritz Borgmann (mborgmann)
- Matt Drollette (mdrollette)
- Adam Monsen (meonkeys)
- Ala Eddine Khefifi (nayzo)
- ollie harridge (ollietb)
- Paweł Szczepanek (pauluz)
- Christian López Espínola (penyaskito)

View File

@ -14,7 +14,6 @@ namespace Symfony\Bridge\Propel1\Form\ChoiceList;
use \ModelCriteria;
use \BaseObject;
use \Persistent;
use Symfony\Component\Form\Exception\StringCastException;
use Symfony\Component\Form\Extension\Core\ChoiceList\ObjectChoiceList;
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;

View File

@ -354,14 +354,14 @@ class SecurityExtension extends Extension
$listeners = array_merge($listeners, $authListeners);
// Access listener
$listeners[] = new Reference('security.access_listener');
// Switch user listener
if (isset($firewall['switch_user'])) {
$listeners[] = new Reference($this->createSwitchUserListener($container, $id, $firewall['switch_user'], $defaultProvider));
}
// Access listener
$listeners[] = new Reference('security.access_listener');
// Determine default entry point
if (isset($firewall['entry_point'])) {
$defaultEntryPoint = $firewall['entry_point'];

View File

@ -12,7 +12,6 @@
namespace Symfony\Bundle\SecurityBundle\Tests\DependencyInjection;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\DependencyInjection\Parameter;
use Symfony\Bundle\SecurityBundle\SecurityBundle;
use Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension;
@ -82,8 +81,8 @@ abstract class CompleteConfigurationTest extends \PHPUnit_Framework_TestCase
'security.authentication.listener.basic.secure',
'security.authentication.listener.digest.secure',
'security.authentication.listener.anonymous.secure',
'security.access_listener',
'security.authentication.switchuser_listener.secure',
'security.access_listener',
),
array(
'security.channel_listener',

View File

@ -12,6 +12,7 @@
namespace Symfony\Component\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Alias;
use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\DependencyInjection\ContainerBuilder;
@ -84,7 +85,12 @@ class ResolveReferencesToAliasesPass implements CompilerPassInterface
*/
private function getDefinitionId($id)
{
$seen = array();
while ($this->container->hasAlias($id)) {
if (isset($seen[$id])) {
throw new ServiceCircularReferenceException($id, array_keys($seen));
}
$seen[$id] = true;
$id = (string) $this->container->getAlias($id);
}

View File

@ -48,6 +48,17 @@ class ResolveReferencesToAliasesPassTest extends \PHPUnit_Framework_TestCase
$this->assertEquals('foo', (string) $arguments[0]);
}
/**
* @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
*/
public function testAliasCircularReference()
{
$container = new ContainerBuilder();
$container->setAlias('bar', 'foo');
$container->setAlias('foo', 'bar');
$this->process($container);
}
protected function process(ContainerBuilder $container)
{
$pass = new ResolveReferencesToAliasesPass();

View File

@ -84,7 +84,7 @@ abstract class AbstractToken implements TokenInterface
* The user can be a UserInterface instance, or an object implementing
* a __toString method or the username as a regular string.
*
* @param mixed $user The user
* @param string|object $user The user
* @throws \InvalidArgumentException
*/
public function setUser($user)

View File

@ -26,10 +26,10 @@ class UsernamePasswordToken extends AbstractToken
/**
* Constructor.
*
* @param string $user The username (like a nickname, email address, etc.), or a UserInterface instance or an object implementing a __toString method.
* @param string|object $user The username (like a nickname, email address, etc.), or a UserInterface instance or an object implementing a __toString method.
* @param string $credentials This usually is the password of the user
* @param string $providerKey The provider key
* @param RoleInterface[] $roles An array of roles
* @param RoleInterface[]|string[] $roles An array of roles
*
* @throws \InvalidArgumentException
*/