Merge branch '2.3' into 2.7

* 2.3:
  Update HTTP statuses list
  [Console][#18619] Prevent fatal error when calling Command#getHelper() without helperSet
  Add SplFileInfo array doc on Finder iterator methods so that IDE will know what it returns
  [2.3] [Form] Modified iterator_to_array's 2nd parameter to false in ViolationMapper
  Updated the link to the list of currency codes
This commit is contained in:
Fabien Potencier 2016-05-13 10:28:37 -05:00
commit 58f8f5174f
6 changed files with 46 additions and 32 deletions

View File

@ -598,10 +598,15 @@ class Command
* *
* @return mixed The helper value * @return mixed The helper value
* *
* @throws \LogicException if no HelperSet is defined
* @throws \InvalidArgumentException if the helper is not defined * @throws \InvalidArgumentException if the helper is not defined
*/ */
public function getHelper($name) public function getHelper($name)
{ {
if (null === $this->helperSet) {
throw new \LogicException(sprintf('Cannot retrieve helper "%s" because there is no HelperSet defined. Did you forget to add your command to the application or to set the application on the command using the setApplication() method? You can also set the HelperSet directly using the setHelperSet() method.', $name));
}
return $this->helperSet->get($name); return $this->helperSet->get($name);
} }

View File

@ -173,6 +173,16 @@ class CommandTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($formatterHelper->getName(), $command->getHelper('formatter')->getName(), '->getHelper() returns the correct helper'); $this->assertEquals($formatterHelper->getName(), $command->getHelper('formatter')->getName(), '->getHelper() returns the correct helper');
} }
/**
* @expectedException \LogicException
* @expectedExceptionMessage Cannot retrieve helper "formatter" because there is no HelperSet defined.
*/
public function testGetHelperWithoutHelperSet()
{
$command = new \TestCommand();
$command->getHelper('formatter');
}
public function testMergeApplicationDefinition() public function testMergeApplicationDefinition()
{ {
$application1 = new Application(); $application1 = new Application();

View File

@ -171,7 +171,7 @@ class Finder implements \IteratorAggregate, \Countable
/** /**
* Restricts the matching to directories only. * Restricts the matching to directories only.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
*/ */
public function directories() public function directories()
{ {
@ -183,7 +183,7 @@ class Finder implements \IteratorAggregate, \Countable
/** /**
* Restricts the matching to files only. * Restricts the matching to files only.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
*/ */
public function files() public function files()
{ {
@ -202,7 +202,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param int $level The depth level expression * @param int $level The depth level expression
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see DepthRangeFilterIterator * @see DepthRangeFilterIterator
* @see NumberComparator * @see NumberComparator
@ -226,7 +226,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $date A date range string * @param string $date A date range string
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see strtotime * @see strtotime
* @see DateRangeFilterIterator * @see DateRangeFilterIterator
@ -250,7 +250,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $pattern A pattern (a regexp, a glob, or a string) * @param string $pattern A pattern (a regexp, a glob, or a string)
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see FilenameFilterIterator * @see FilenameFilterIterator
*/ */
@ -266,7 +266,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $pattern A pattern (a regexp, a glob, or a string) * @param string $pattern A pattern (a regexp, a glob, or a string)
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see FilenameFilterIterator * @see FilenameFilterIterator
*/ */
@ -287,7 +287,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $pattern A pattern (string or regexp) * @param string $pattern A pattern (string or regexp)
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see FilecontentFilterIterator * @see FilecontentFilterIterator
*/ */
@ -308,7 +308,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $pattern A pattern (string or regexp) * @param string $pattern A pattern (string or regexp)
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see FilecontentFilterIterator * @see FilecontentFilterIterator
*/ */
@ -331,7 +331,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $pattern A pattern (a regexp or a string) * @param string $pattern A pattern (a regexp or a string)
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see FilenameFilterIterator * @see FilenameFilterIterator
*/ */
@ -354,7 +354,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $pattern A pattern (a regexp or a string) * @param string $pattern A pattern (a regexp or a string)
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see FilenameFilterIterator * @see FilenameFilterIterator
*/ */
@ -374,7 +374,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string $size A size range string * @param string $size A size range string
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see SizeRangeFilterIterator * @see SizeRangeFilterIterator
* @see NumberComparator * @see NumberComparator
@ -391,7 +391,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string|array $dirs A directory path or an array of directories * @param string|array $dirs A directory path or an array of directories
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see ExcludeDirectoryFilterIterator * @see ExcludeDirectoryFilterIterator
*/ */
@ -407,7 +407,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param bool $ignoreDotFiles Whether to exclude "hidden" files or not * @param bool $ignoreDotFiles Whether to exclude "hidden" files or not
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see ExcludeDirectoryFilterIterator * @see ExcludeDirectoryFilterIterator
*/ */
@ -427,7 +427,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param bool $ignoreVCS Whether to exclude VCS files or not * @param bool $ignoreVCS Whether to exclude VCS files or not
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see ExcludeDirectoryFilterIterator * @see ExcludeDirectoryFilterIterator
*/ */
@ -467,7 +467,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param \Closure $closure An anonymous function * @param \Closure $closure An anonymous function
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see SortableIterator * @see SortableIterator
*/ */
@ -483,7 +483,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* This can be slow as all the matching files and directories must be retrieved for comparison. * This can be slow as all the matching files and directories must be retrieved for comparison.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see SortableIterator * @see SortableIterator
*/ */
@ -499,7 +499,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* This can be slow as all the matching files and directories must be retrieved for comparison. * This can be slow as all the matching files and directories must be retrieved for comparison.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see SortableIterator * @see SortableIterator
*/ */
@ -517,7 +517,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* This can be slow as all the matching files and directories must be retrieved for comparison. * This can be slow as all the matching files and directories must be retrieved for comparison.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see SortableIterator * @see SortableIterator
*/ */
@ -537,7 +537,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* This can be slow as all the matching files and directories must be retrieved for comparison. * This can be slow as all the matching files and directories must be retrieved for comparison.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see SortableIterator * @see SortableIterator
*/ */
@ -555,7 +555,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* This can be slow as all the matching files and directories must be retrieved for comparison. * This can be slow as all the matching files and directories must be retrieved for comparison.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see SortableIterator * @see SortableIterator
*/ */
@ -574,7 +574,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param \Closure $closure An anonymous function * @param \Closure $closure An anonymous function
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @see CustomFilterIterator * @see CustomFilterIterator
*/ */
@ -588,7 +588,7 @@ class Finder implements \IteratorAggregate, \Countable
/** /**
* Forces the following of symlinks. * Forces the following of symlinks.
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
*/ */
public function followLinks() public function followLinks()
{ {
@ -604,7 +604,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param bool $ignore * @param bool $ignore
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
*/ */
public function ignoreUnreadableDirs($ignore = true) public function ignoreUnreadableDirs($ignore = true)
{ {
@ -618,7 +618,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param string|array $dirs A directory path or an array of directories * @param string|array $dirs A directory path or an array of directories
* *
* @return Finder The current Finder instance * @return Finder|SplFileInfo[] The current Finder instance
* *
* @throws \InvalidArgumentException if one of the directories does not exist * @throws \InvalidArgumentException if one of the directories does not exist
*/ */
@ -679,7 +679,7 @@ class Finder implements \IteratorAggregate, \Countable
* *
* @param mixed $iterator * @param mixed $iterator
* *
* @return Finder The finder * @return Finder|SplFileInfo[] The finder
* *
* @throws \InvalidArgumentException When the given argument is not iterable. * @throws \InvalidArgumentException When the given argument is not iterable.
*/ */

View File

@ -162,9 +162,7 @@ class ViolationMapper implements ViolationMapperInterface
} }
} }
$children = iterator_to_array(new \RecursiveIteratorIterator( $children = iterator_to_array(new \RecursiveIteratorIterator(new InheritDataAwareIterator($form)), false);
new InheritDataAwareIterator($form)
));
while ($it->valid()) { while ($it->valid()) {
if ($it->isIndex()) { if ($it->isIndex()) {
@ -189,7 +187,7 @@ class ViolationMapper implements ViolationMapperInterface
} }
/** @var FormInterface $child */ /** @var FormInterface $child */
foreach ($children as $key => $child) { foreach ($children as $i => $child) {
$childPath = (string) $child->getPropertyPath(); $childPath = (string) $child->getPropertyPath();
if ($childPath === $chunk) { if ($childPath === $chunk) {
$target = $child; $target = $child;
@ -198,7 +196,7 @@ class ViolationMapper implements ViolationMapperInterface
continue; continue;
} }
unset($children[$key]); unset($children[$i]);
} }
$it->next(); $it->next();

View File

@ -115,7 +115,7 @@ class Response
* *
* The list of codes is complete according to the * The list of codes is complete according to the
* {@link http://www.iana.org/assignments/http-status-codes/ Hypertext Transfer Protocol (HTTP) Status Code Registry} * {@link http://www.iana.org/assignments/http-status-codes/ Hypertext Transfer Protocol (HTTP) Status Code Registry}
* (last updated 2012-02-13). * (last updated 2016-03-01).
* *
* Unless otherwise noted, the status code is defined in RFC2616. * Unless otherwise noted, the status code is defined in RFC2616.
* *
@ -163,6 +163,7 @@ class Response
416 => 'Requested Range Not Satisfiable', 416 => 'Requested Range Not Satisfiable',
417 => 'Expectation Failed', 417 => 'Expectation Failed',
418 => 'I\'m a teapot', // RFC2324 418 => 'I\'m a teapot', // RFC2324
421 => 'Misdirected Request', // RFC7540
422 => 'Unprocessable Entity', // RFC4918 422 => 'Unprocessable Entity', // RFC4918
423 => 'Locked', // RFC4918 423 => 'Locked', // RFC4918
424 => 'Failed Dependency', // RFC4918 424 => 'Failed Dependency', // RFC4918

View File

@ -326,7 +326,7 @@ class NumberFormatter
* @return string The formatted currency value * @return string The formatted currency value
* *
* @see http://www.php.net/manual/en/numberformatter.formatcurrency.php * @see http://www.php.net/manual/en/numberformatter.formatcurrency.php
* @see http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes/currency_codes_list-1.htm * @see https://en.wikipedia.org/wiki/ISO_4217#Active_codes
*/ */
public function formatCurrency($value, $currency) public function formatCurrency($value, $currency)
{ {