Merge branch '3.1'
* 3.1: `@throws` annotations should go after `@return` Fix merge updated VERSION for 2.3.42 update CONTRIBUTORS for 2.3.42 updated CHANGELOG for 2.3.42 Revert "bug #18908 [DependencyInjection] force enabling the external XML entity loaders (xabbuh)" Partial revert of previous PR [DependencyInjection] Skip deep reference check for 'service_container' Catch \Throwable [Serializer] Add missing @throws annotations Fix for #18843 force enabling the external XML entity loaders Removed UTC specification with timestamp
This commit is contained in:
commit
cd074b3914
@ -23,8 +23,8 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Pascal Borreli (pborreli)
|
||||
- Joseph Bielawski (stloyd)
|
||||
- Wouter De Jong (wouterj)
|
||||
- Karma Dordrak (drak)
|
||||
- Romain Neutron (romain)
|
||||
- Karma Dordrak (drak)
|
||||
- Lukas Kahwe Smith (lsmith)
|
||||
- Martin Hasoň (hason)
|
||||
- Jeremy Mikola (jmikola)
|
||||
@ -53,11 +53,11 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Bilal Amarni (bamarni)
|
||||
- Florin Patan (florinpatan)
|
||||
- Kevin Bond (kbond)
|
||||
- Peter Rehm (rpet)
|
||||
- Gábor Egyed (1ed)
|
||||
- Michel Weimerskirch (mweimerskirch)
|
||||
- Eric Clemmons (ericclemmons)
|
||||
- Andrej Hudec (pulzarraider)
|
||||
- Peter Rehm (rpet)
|
||||
- Christian Raue
|
||||
- Matthias Pigulla (mpdude)
|
||||
- Deni
|
||||
@ -67,6 +67,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Iltar van der Berg (kjarli)
|
||||
- Ener-Getick (energetick)
|
||||
- Douglas Greenshields (shieldo)
|
||||
- Charles Sarrazin (csarrazi)
|
||||
- Lee McDermott
|
||||
- Brandon Turner
|
||||
- Luis Cordova (cordoval)
|
||||
@ -74,7 +75,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Pierre du Plessis (pierredup)
|
||||
- Bart van den Burg (burgov)
|
||||
- Jordan Alliot (jalliot)
|
||||
- Charles Sarrazin (csarrazi)
|
||||
- John Wards (johnwards)
|
||||
- Toni Uebernickel (havvg)
|
||||
- Fran Moreno (franmomu)
|
||||
@ -89,6 +89,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Alexander M. Turek (derrabus)
|
||||
- Dariusz Ruminski
|
||||
- marc.weistroff
|
||||
- Issei Murasawa (issei_m)
|
||||
- lenar
|
||||
- Włodzimierz Gajda (gajdaw)
|
||||
- Alexander Schwenn (xelaris)
|
||||
@ -97,13 +98,12 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Colin Frei
|
||||
- Adrien Brault (adrienbrault)
|
||||
- Joshua Thijssen
|
||||
- Issei Murasawa (issei_m)
|
||||
- Baptiste Clavié (talus)
|
||||
- Peter Kokot (maastermedia)
|
||||
- excelwebzone
|
||||
- Jacob Dreesen (jdreesen)
|
||||
- Jérémy DERUSSÉ (jderusse)
|
||||
- Vladimir Reznichenko (kalessil)
|
||||
- Baptiste Clavié (talus)
|
||||
- Fabien Pennequin (fabienpennequin)
|
||||
- Gordon Franke (gimler)
|
||||
- David Buchmann (dbu)
|
||||
@ -121,6 +121,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Evgeniy (ewgraf)
|
||||
- Guilherme Blanco (guilhermeblanco)
|
||||
- Pablo Godel (pgodel)
|
||||
- Titouan Galopin (tgalopin)
|
||||
- Jérémie Augustin (jaugustin)
|
||||
- Sebastiaan Stok (sstok)
|
||||
- Tugdual Saunier (tucksaun)
|
||||
@ -129,10 +130,10 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Arnaud Kleinpeter (nanocom)
|
||||
- Joel Wurtz (brouznouf)
|
||||
- Philipp Wahala (hifi)
|
||||
- Titouan Galopin (tgalopin)
|
||||
- Richard Shank (iampersistent)
|
||||
- Thomas Rabaix (rande)
|
||||
- Vincent AUBERT (vincent)
|
||||
- Rouven Weßling (realityking)
|
||||
- Mikael Pajunen
|
||||
- Clemens Tolboom
|
||||
- Helmer Aaviksoo
|
||||
@ -143,7 +144,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Amal Raghav (kertz)
|
||||
- Jonathan Ingram (jonathaningram)
|
||||
- Artur Kotyrba
|
||||
- Rouven Weßling (realityking)
|
||||
- Warnar Boekkooi (boekkooi)
|
||||
- Dmitrii Chekaliuk (lazyhammer)
|
||||
- Clément JOBEILI (dator)
|
||||
@ -211,6 +211,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Kristen Gilden (kgilden)
|
||||
- Dawid Nowak
|
||||
- Pierre-Yves LEBECQ (pylebecq)
|
||||
- Daniel Espendiller
|
||||
- Jakub Kucharovic (jkucharovic)
|
||||
- Eugene Leonovich (rybakit)
|
||||
- Filippo Tessarotto
|
||||
@ -240,7 +241,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Michael Holm (hollo)
|
||||
- Marc Weistroff (futurecat)
|
||||
- Hidde Wieringa (hiddewie)
|
||||
- Daniel Espendiller
|
||||
- Chris Smith (cs278)
|
||||
- Florian Klein (docteurklein)
|
||||
- Manuel Kiessling (manuelkiessling)
|
||||
@ -293,6 +293,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Inal DJAFAR (inalgnu)
|
||||
- Christian Gärtner (dagardner)
|
||||
- Tomasz Kowalczyk (thunderer)
|
||||
- Christian Schmidt
|
||||
- François-Xavier de Guillebon (de-gui_f)
|
||||
- Damien Alexandre (damienalexandre)
|
||||
- Felix Labrecque
|
||||
@ -309,6 +310,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Philipp Kräutli (pkraeutli)
|
||||
- Kirill chEbba Chebunin (chebba)
|
||||
- Greg Thornton (xdissent)
|
||||
- Robin Chalas (chalas_r)
|
||||
- Costin Bereveanu (schniper)
|
||||
- Loïc Chardonnet (gnusat)
|
||||
- Marek Kalnik (marekkalnik)
|
||||
@ -319,12 +321,14 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Pavel Volokitin (pvolok)
|
||||
- Endre Fejes
|
||||
- Tobias Naumann (tna)
|
||||
- Daniel Beyer
|
||||
- Shein Alexey
|
||||
- Baptiste Lafontaine
|
||||
- Joe Lencioni
|
||||
- Daniel Tschinder
|
||||
- Kai
|
||||
- Lee Rowlands
|
||||
- Krzysztof Piasecki (krzysztek)
|
||||
- Maximilian Reichel (phramz)
|
||||
- Loick Piera (pyrech)
|
||||
- Karoly Negyesi (chx)
|
||||
@ -364,7 +368,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- EdgarPE
|
||||
- Florian Pfitzer (marmelatze)
|
||||
- Asier Illarramendi (doup)
|
||||
- Christian Schmidt
|
||||
- Chris Sedlmayr (catchamonkey)
|
||||
- Seb Koelen
|
||||
- Christoph Mewes (xrstf)
|
||||
@ -382,6 +385,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Mathieu Lemoine
|
||||
- franek (franek)
|
||||
- Christian Wahler
|
||||
- Mathieu Lemoine
|
||||
- Gintautas Miselis
|
||||
- Zander Baldwin
|
||||
- Adam Harvey
|
||||
@ -419,7 +423,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Anthony Ferrara
|
||||
- Ioan Negulescu
|
||||
- Jakub Škvára (jskvara)
|
||||
- Daniel Beyer
|
||||
- Andrew Udvare (audvare)
|
||||
- alexpods
|
||||
- Tristan Darricau (nicofuma)
|
||||
@ -448,6 +451,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Denis Gorbachev (starfall)
|
||||
- Peter van Dommelen
|
||||
- Tim van Densen
|
||||
- Martin Morávek (keeo)
|
||||
- Steven Surowiec
|
||||
- Kevin Saliou (kbsali)
|
||||
- NothingWeAre
|
||||
@ -462,7 +466,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Ziumin
|
||||
- Jeremy Benoist
|
||||
- Lenar Lõhmus
|
||||
- Krzysztof Piasecki (krzysztek)
|
||||
- Benjamin Laugueux (yzalis)
|
||||
- Zach Badgett (zachbadgett)
|
||||
- Aurélien Fredouelle
|
||||
@ -501,6 +504,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Javier López (loalf)
|
||||
- Reinier Kip
|
||||
- Dustin Dobervich (dustin10)
|
||||
- dantleech
|
||||
- Anne-Sophie Bachelard (annesophie)
|
||||
- Sebastian Marek (proofek)
|
||||
- Erkhembayar Gantulga (erheme318)
|
||||
@ -563,6 +567,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Peter Ward
|
||||
- Dominik Ritter (dritter)
|
||||
- Sebastian Grodzicki (sgrodzicki)
|
||||
- SpacePossum
|
||||
- Martin Hujer (martinhujer)
|
||||
- Pascal Helfenstein
|
||||
- Baldur Rensch (brensch)
|
||||
@ -613,6 +618,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Adrien Lucas (adrienlucas)
|
||||
- James Michael DuPont
|
||||
- Tom Klingenberg
|
||||
- Filip Procházka (fprochazka)
|
||||
- Christopher Hall (mythmakr)
|
||||
- Paul Kamer (pkamer)
|
||||
- Rafał Wrzeszcz (rafalwrzeszcz)
|
||||
@ -629,6 +635,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Alaattin Kahramanlar (alaattin)
|
||||
- Maksim Kotlyar (makasim)
|
||||
- Neil Ferreira
|
||||
- Nathanael Noblet (gnat)
|
||||
- Dmitry Parnas (parnas)
|
||||
- Théo FIDRY (theofidry)
|
||||
- Paul LE CORRE
|
||||
@ -745,7 +752,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Guillaume Royer
|
||||
- Artem (digi)
|
||||
- boite
|
||||
- dantleech
|
||||
- Vadim Tyukov (vatson)
|
||||
- Sortex
|
||||
- chispita
|
||||
@ -851,6 +857,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Christian Sciberras
|
||||
- Anton Bakai
|
||||
- Clement Herreman (clemherreman)
|
||||
- Dan Ionut Dumitriu (danionut90)
|
||||
- Nyro (nyro)
|
||||
- Marco
|
||||
- Marc Torres
|
||||
@ -870,7 +877,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- ConneXNL
|
||||
- Aharon Perkel
|
||||
- Abdul.Mohsen B. A. A
|
||||
- SpacePossum
|
||||
- Benoît Burnichon
|
||||
- Remi Collet
|
||||
- pthompson
|
||||
@ -1059,6 +1065,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- stloyd
|
||||
- Chris Tickner
|
||||
- Andrew Coulton
|
||||
- Jeremy Benoist
|
||||
- Michal Gebauer
|
||||
- Gleb Sidora
|
||||
- David Stone
|
||||
@ -1108,7 +1115,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Simon Sargeant
|
||||
- efeen
|
||||
- Michał Dąbrowski (defrag)
|
||||
- Nathanael Noblet (gnat)
|
||||
- Simone Fumagalli (hpatoio)
|
||||
- Brian Graham (incognito)
|
||||
- Kevin Vergauwen (innocenzo)
|
||||
@ -1214,8 +1220,10 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Alan Chen
|
||||
- Maerlyn
|
||||
- Even André Fiskvik
|
||||
- Erik van Wingerden
|
||||
- Dane Powell
|
||||
- Gerrit Drost
|
||||
- Linnaea Von Lavia
|
||||
- Lenar Lõhmus
|
||||
- Cristian Gonzalez
|
||||
- AlberT
|
||||
@ -1271,6 +1279,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Joseph Deray
|
||||
- Damian Sromek
|
||||
- Ben
|
||||
- dasmfm
|
||||
- Arnaud Buathier (arnapou)
|
||||
- chesteroni (chesteroni)
|
||||
- Mauricio Lopez (diaspar)
|
||||
@ -1358,7 +1367,6 @@ Symfony is the result of the work of many people who made the code better
|
||||
- Norman Soetbeer
|
||||
- zorn
|
||||
- Benjamin Long
|
||||
- Robin Chalas
|
||||
- Matt Janssen
|
||||
- Peter Gribanov
|
||||
- kwiateusz
|
||||
@ -1443,6 +1451,7 @@ Symfony is the result of the work of many people who made the code better
|
||||
- ollie harridge (ollietb)
|
||||
- Paul Andrieux (paulandrieux)
|
||||
- Paweł Szczepanek (pauluz)
|
||||
- Philippe Degeeter (pdegeeter)
|
||||
- Christian López Espínola (penyaskito)
|
||||
- Petr Jaroš (petajaros)
|
||||
- Philipp Hoffmann (philipphoffmann)
|
||||
|
@ -67,9 +67,9 @@ class Scope
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
*
|
||||
* @throws \LogicException
|
||||
*
|
||||
* @return Scope Current scope
|
||||
*
|
||||
* @throws \LogicException
|
||||
*/
|
||||
public function set($key, $value)
|
||||
{
|
||||
|
@ -78,7 +78,7 @@ class DelegatingLoader extends BaseDelegatingLoader
|
||||
if ($controller = $route->getDefault('_controller')) {
|
||||
try {
|
||||
$controller = $this->parser->parse($controller);
|
||||
} catch (\Exception $e) {
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
// unable to optimize unknown notation
|
||||
}
|
||||
|
||||
|
@ -182,9 +182,9 @@ class PhpExtractor extends AbstractFileExtractor implements ExtractorInterface
|
||||
/**
|
||||
* @param string $file
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
protected function canBeExtracted($file)
|
||||
{
|
||||
|
@ -58,9 +58,9 @@ class Parser implements ParserInterface
|
||||
*
|
||||
* @param Token[] $tokens
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*/
|
||||
public static function parseSeries(array $tokens)
|
||||
{
|
||||
@ -133,9 +133,9 @@ class Parser implements ParserInterface
|
||||
*
|
||||
* @param TokenStream $stream
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*
|
||||
* @return Node\SelectorNode
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*/
|
||||
private function parserSelectorNode(TokenStream $stream)
|
||||
{
|
||||
@ -173,9 +173,9 @@ class Parser implements ParserInterface
|
||||
* @param TokenStream $stream
|
||||
* @param bool $insideNegation
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*/
|
||||
private function parseSimpleSelector(TokenStream $stream, $insideNegation = false)
|
||||
{
|
||||
@ -330,9 +330,9 @@ class Parser implements ParserInterface
|
||||
* @param Node\NodeInterface $selector
|
||||
* @param TokenStream $stream
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*
|
||||
* @return Node\AttributeNode
|
||||
*
|
||||
* @throws SyntaxErrorException
|
||||
*/
|
||||
private function parseAttributeNode(Node\NodeInterface $selector, TokenStream $stream)
|
||||
{
|
||||
|
@ -85,9 +85,9 @@ class TokenStream
|
||||
/**
|
||||
* Returns next token.
|
||||
*
|
||||
* @throws InternalErrorException If there is no more token
|
||||
*
|
||||
* @return Token
|
||||
*
|
||||
* @throws InternalErrorException If there is no more token
|
||||
*/
|
||||
public function getNext()
|
||||
{
|
||||
@ -133,9 +133,9 @@ class TokenStream
|
||||
/**
|
||||
* Returns nex identifier token.
|
||||
*
|
||||
* @throws SyntaxErrorException If next token is not an identifier
|
||||
*
|
||||
* @return string The identifier token value
|
||||
*
|
||||
* @throws SyntaxErrorException If next token is not an identifier
|
||||
*/
|
||||
public function getNextIdentifier()
|
||||
{
|
||||
@ -151,9 +151,9 @@ class TokenStream
|
||||
/**
|
||||
* Returns nex identifier or star delimiter token.
|
||||
*
|
||||
* @throws SyntaxErrorException If next token is not an identifier or a star delimiter
|
||||
*
|
||||
* @return null|string The identifier token value or null if star found
|
||||
*
|
||||
* @throws SyntaxErrorException If next token is not an identifier or a star delimiter
|
||||
*/
|
||||
public function getNextIdentifierOrStar()
|
||||
{
|
||||
|
@ -268,9 +268,9 @@ class Translator implements TranslatorInterface
|
||||
* @param string $attribute
|
||||
* @param string $value
|
||||
*
|
||||
* @throws ExpressionErrorException
|
||||
*
|
||||
* @return XPathExpr
|
||||
*
|
||||
* @throws ExpressionErrorException
|
||||
*/
|
||||
public function addAttributeMatching(XPathExpr $xpath, $operator, $attribute, $value)
|
||||
{
|
||||
|
@ -1176,7 +1176,7 @@ EOF;
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($deep && !isset($visited[$argumentId])) {
|
||||
if ($deep && !isset($visited[$argumentId]) && 'service_container' !== $argumentId) {
|
||||
$visited[$argumentId] = true;
|
||||
|
||||
$service = $this->container->getDefinition($argumentId);
|
||||
|
@ -284,4 +284,15 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase
|
||||
|
||||
$this->assertEquals(file_get_contents(self::$fixturesPath.'/php/services24.php'), $dumper->dump());
|
||||
}
|
||||
|
||||
public function testInlinedDefinitionReferencingServiceContainer()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
$container->register('foo', 'stdClass')->addMethodCall('add', array(new Reference('service_container')))->setPublic(false);
|
||||
$container->register('bar', 'stdClass')->addArgument(new Reference('foo'));
|
||||
$container->compile();
|
||||
|
||||
$dumper = new PhpDumper($container);
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services13.php', $dumper->dump(), '->dump() dumps inline definitions which reference service_container');
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* ProjectServiceContainer.
|
||||
*
|
||||
* This class has been auto-generated
|
||||
* by the Symfony Dependency Injection Component.
|
||||
*/
|
||||
class ProjectServiceContainer extends Container
|
||||
{
|
||||
private $parameters;
|
||||
private $targetDirs = array();
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->services = array();
|
||||
$this->methodMap = array(
|
||||
'bar' => 'getBarService',
|
||||
);
|
||||
|
||||
$this->aliases = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function compile()
|
||||
{
|
||||
throw new LogicException('You cannot compile a dumped frozen container.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the 'bar' service.
|
||||
*
|
||||
* This service is shared.
|
||||
* This method always returns the same instance of the service.
|
||||
*
|
||||
* @return \stdClass A stdClass instance.
|
||||
*/
|
||||
protected function getBarService()
|
||||
{
|
||||
$a = new \stdClass();
|
||||
$a->add($this);
|
||||
|
||||
return $this->services['bar'] = new \stdClass($a);
|
||||
}
|
||||
}
|
@ -61,9 +61,9 @@ class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
|
||||
*
|
||||
* @param string $key Key.
|
||||
*
|
||||
* @throws \InvalidArgumentException If key is not found.
|
||||
*
|
||||
* @return mixed Contents of array key.
|
||||
*
|
||||
* @throws \InvalidArgumentException If key is not found.
|
||||
*/
|
||||
public function getArgument($key)
|
||||
{
|
||||
@ -130,9 +130,9 @@ class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
|
||||
*
|
||||
* @param string $key Array key.
|
||||
*
|
||||
* @throws \InvalidArgumentException If key does not exist in $this->args.
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws \InvalidArgumentException If key does not exist in $this->args.
|
||||
*/
|
||||
public function offsetGet($key)
|
||||
{
|
||||
|
@ -126,7 +126,7 @@ class DateTimeToLocalizedStringTransformer extends BaseDateTimeTransformer
|
||||
|
||||
try {
|
||||
// read timestamp into DateTime object - the formatter delivers in UTC
|
||||
$dateTime = new \DateTime(sprintf('@%s UTC', $timestamp));
|
||||
$dateTime = new \DateTime(sprintf('@%s', $timestamp));
|
||||
} catch (\Exception $e) {
|
||||
throw new TransformationFailedException($e->getMessage(), $e->getCode(), $e);
|
||||
}
|
||||
|
@ -1018,9 +1018,9 @@ class Form implements \IteratorAggregate, FormInterface
|
||||
*
|
||||
* @param mixed $value The value to transform
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "normalized" format
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "normalized" format
|
||||
*/
|
||||
private function modelToNorm($value)
|
||||
{
|
||||
@ -1044,9 +1044,9 @@ class Form implements \IteratorAggregate, FormInterface
|
||||
*
|
||||
* @param string $value The value to reverse transform
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "model" format
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "model" format
|
||||
*/
|
||||
private function normToModel($value)
|
||||
{
|
||||
@ -1072,9 +1072,9 @@ class Form implements \IteratorAggregate, FormInterface
|
||||
*
|
||||
* @param mixed $value The value to transform
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "view" format
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "view" format
|
||||
*/
|
||||
private function normToView($value)
|
||||
{
|
||||
@ -1107,9 +1107,9 @@ class Form implements \IteratorAggregate, FormInterface
|
||||
*
|
||||
* @param string $value The value to reverse transform
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "normalized" format
|
||||
*
|
||||
* @return mixed
|
||||
*
|
||||
* @throws TransformationFailedException If the value cannot be transformed to "normalized" format
|
||||
*/
|
||||
private function viewToNorm($value)
|
||||
{
|
||||
|
@ -181,9 +181,9 @@ class ResponseHeaderBag extends HeaderBag
|
||||
*
|
||||
* @param string $format
|
||||
*
|
||||
* @throws \InvalidArgumentException When the $format is invalid
|
||||
*
|
||||
* @return array
|
||||
*
|
||||
* @throws \InvalidArgumentException When the $format is invalid
|
||||
*/
|
||||
public function getCookies($format = self::COOKIES_FLAT)
|
||||
{
|
||||
|
@ -24,9 +24,9 @@ interface SessionStorageInterface
|
||||
/**
|
||||
* Starts the session.
|
||||
*
|
||||
* @throws \RuntimeException If something goes wrong starting the session.
|
||||
*
|
||||
* @return bool True if started.
|
||||
*
|
||||
* @throws \RuntimeException If something goes wrong starting the session.
|
||||
*/
|
||||
public function start();
|
||||
|
||||
|
@ -154,6 +154,8 @@ class HttpCache implements HttpKernelInterface, TerminableInterface
|
||||
* Gets the Surrogate instance.
|
||||
*
|
||||
* @return SurrogateInterface A Surrogate instance
|
||||
*
|
||||
* @throws \LogicException
|
||||
*/
|
||||
public function getSurrogate()
|
||||
{
|
||||
|
@ -486,10 +486,10 @@ class Process implements \IteratorAggregate
|
||||
* In comparison with the getOutput method which always return the whole
|
||||
* output, this one returns the new output since the last call.
|
||||
*
|
||||
* @return string The process output since the last call
|
||||
*
|
||||
* @throws LogicException in case the output has been disabled
|
||||
* @throws LogicException In case the process is not started
|
||||
*
|
||||
* @return string The process output since the last call
|
||||
*/
|
||||
public function getIncrementalOutput()
|
||||
{
|
||||
@ -601,10 +601,10 @@ class Process implements \IteratorAggregate
|
||||
* whole error output, this one returns the new error output since the last
|
||||
* call.
|
||||
*
|
||||
* @return string The process error output since the last call
|
||||
*
|
||||
* @throws LogicException in case the output has been disabled
|
||||
* @throws LogicException In case the process is not started
|
||||
*
|
||||
* @return string The process error output since the last call
|
||||
*/
|
||||
public function getIncrementalErrorOutput()
|
||||
{
|
||||
|
@ -59,7 +59,7 @@ class ChainDecoder implements DecoderInterface
|
||||
*
|
||||
* @return DecoderInterface
|
||||
*
|
||||
* @throws RuntimeException if no decoder is found
|
||||
* @throws RuntimeException If no decoder is found.
|
||||
*/
|
||||
private function getDecoder($format)
|
||||
{
|
||||
|
@ -464,6 +464,8 @@ class XmlEncoder extends SerializerAwareEncoder implements EncoderInterface, Dec
|
||||
* @param mixed $val
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
* @throws UnexpectedValueException
|
||||
*/
|
||||
private function selectNodeType(\DOMNode $node, $val)
|
||||
{
|
||||
|
@ -33,6 +33,8 @@ interface DenormalizableInterface
|
||||
* @param string|null $format The format is optionally given to be able to denormalize differently
|
||||
* based on different input formats
|
||||
* @param array $context options for denormalizing
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
public function denormalize(DenormalizerInterface $denormalizer, $data, $format = null, array $context = array());
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ interface NormalizableInterface
|
||||
* based on different output formats.
|
||||
* @param array $context Options for normalizing this object
|
||||
*
|
||||
* @return array|string|bool|int|float|null
|
||||
* @return array|scalar
|
||||
*/
|
||||
public function normalize(NormalizerInterface $normalizer, $format = null, array $context = array());
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ interface NormalizerInterface
|
||||
* @param string $format format the normalization result will be encoded as
|
||||
* @param array $context Context options for the normalizer
|
||||
*
|
||||
* @return array|string|bool|int|float|null
|
||||
* @return array|scalar
|
||||
*/
|
||||
public function normalize($object, $format = null, array $context = array());
|
||||
|
||||
|
@ -87,8 +87,6 @@ class StopwatchEvent
|
||||
/**
|
||||
* Stops the last started event period.
|
||||
*
|
||||
* @throws \LogicException When start wasn't called before stopping
|
||||
*
|
||||
* @return StopwatchEvent The event
|
||||
*
|
||||
* @throws \LogicException When stop() is called without a matching call to start()
|
||||
|
@ -54,9 +54,9 @@ abstract class AbstractFileExtractor
|
||||
/**
|
||||
* @param string $file
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
protected function isFile($file)
|
||||
{
|
||||
|
@ -165,6 +165,8 @@ class XliffFileLoader implements LoaderInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates and parses the given file into a DOMDocument.
|
||||
*
|
||||
* @param string $file
|
||||
* @param \DOMDocument $dom
|
||||
* @param string $schema source of the schema
|
||||
|
@ -23,9 +23,9 @@ interface TranslatorBagInterface
|
||||
*
|
||||
* @param string|null $locale The locale or null to use the default
|
||||
*
|
||||
* @throws \InvalidArgumentException If the locale contains invalid characters
|
||||
*
|
||||
* @return MessageCatalogueInterface
|
||||
*
|
||||
* @throws \InvalidArgumentException If the locale contains invalid characters
|
||||
*/
|
||||
public function getCatalogue($locale = null);
|
||||
}
|
||||
|
@ -26,9 +26,9 @@ interface TranslatorInterface
|
||||
* @param string|null $domain The domain for the message or null to use the default
|
||||
* @param string|null $locale The locale or null to use the default
|
||||
*
|
||||
* @throws \InvalidArgumentException If the locale contains invalid characters
|
||||
*
|
||||
* @return string The translated string
|
||||
*
|
||||
* @throws \InvalidArgumentException If the locale contains invalid characters
|
||||
*/
|
||||
public function trans($id, array $parameters = array(), $domain = null, $locale = null);
|
||||
|
||||
@ -41,9 +41,9 @@ interface TranslatorInterface
|
||||
* @param string|null $domain The domain for the message or null to use the default
|
||||
* @param string|null $locale The locale or null to use the default
|
||||
*
|
||||
* @throws \InvalidArgumentException If the locale contains invalid characters
|
||||
*
|
||||
* @return string The translated string
|
||||
*
|
||||
* @throws \InvalidArgumentException If the locale contains invalid characters
|
||||
*/
|
||||
public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null);
|
||||
|
||||
|
@ -85,7 +85,7 @@ class Dumper
|
||||
if ($inline <= 0 || !is_array($input) || empty($input)) {
|
||||
$output .= $prefix.Inline::dump($input, $flags);
|
||||
} else {
|
||||
$isAHash = array_keys($input) !== range(0, count($input) - 1);
|
||||
$isAHash = Inline::isHash($input);
|
||||
|
||||
foreach ($input as $key => $value) {
|
||||
if ($inline > 1 && Yaml::DUMP_MULTI_LINE_LITERAL_BLOCK & $flags && is_string($value) && false !== strpos($value, "\n")) {
|
||||
|
@ -215,6 +215,28 @@ class Inline
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if given array is hash or just normal indexed array.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @param array $value The PHP array to check
|
||||
*
|
||||
* @return bool true if value is hash array, false otherwise
|
||||
*/
|
||||
public static function isHash(array $value)
|
||||
{
|
||||
$expectedKey = 0;
|
||||
|
||||
foreach ($value as $key => $val) {
|
||||
if ($key !== $expectedKey++) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dumps a PHP array to a YAML string.
|
||||
*
|
||||
@ -226,11 +248,7 @@ class Inline
|
||||
private static function dumpArray($value, $flags)
|
||||
{
|
||||
// array
|
||||
$keys = array_keys($value);
|
||||
$keysCount = count($keys);
|
||||
if ((1 === $keysCount && '0' == $keys[0])
|
||||
|| ($keysCount > 1 && array_reduce($keys, function ($v, $w) { return (int) $v + $w; }, 0) === $keysCount * ($keysCount - 1) / 2)
|
||||
) {
|
||||
if ($value && !self::isHash($value)) {
|
||||
$output = array();
|
||||
foreach ($value as $val) {
|
||||
$output[] = self::dump($val, $flags);
|
||||
@ -239,7 +257,7 @@ class Inline
|
||||
return sprintf('[%s]', implode(', ', $output));
|
||||
}
|
||||
|
||||
// mapping
|
||||
// hash
|
||||
$output = array();
|
||||
foreach ($value as $key => $val) {
|
||||
$output[] = sprintf('%s: %s', self::dump($key, $flags), self::dump($val, $flags));
|
||||
|
@ -277,6 +277,24 @@ class InlineTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertContains('Not quoting a scalar starting with the "%" indicator character is deprecated since Symfony 3.1 and will throw a ParseException in 4.0.', $deprecations[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getDataForIsHash
|
||||
*/
|
||||
public function testIsHash($array, $expected)
|
||||
{
|
||||
$this->assertSame($expected, Inline::isHash($array));
|
||||
}
|
||||
|
||||
public function getDataForIsHash()
|
||||
{
|
||||
return array(
|
||||
array(array(), false),
|
||||
array(array(1, 2, 3), false),
|
||||
array(array(2 => 1, 1 => 2, 0 => 3), true),
|
||||
array(array('foo' => 1, 'bar' => 2), true),
|
||||
);
|
||||
}
|
||||
|
||||
public function getTestsForParse()
|
||||
{
|
||||
return array(
|
||||
@ -494,6 +512,8 @@ class InlineTest extends \PHPUnit_Framework_TestCase
|
||||
array('[foo, { bar: foo, foo: [foo, { bar: foo }] }, [foo, { bar: foo }]]', array('foo', array('bar' => 'foo', 'foo' => array('foo', array('bar' => 'foo'))), array('foo', array('bar' => 'foo')))),
|
||||
|
||||
array('[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']', array('foo', '@foo.baz', array('%foo%' => 'foo is %foo%', 'bar' => '%foo%'), true, '@service_container')),
|
||||
|
||||
array('{ foo: { bar: { 1: 2, baz: 3 } } }', array('foo' => array('bar' => array(1 => 2, 'baz' => 3)))),
|
||||
);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user