diff --git a/.travis.yml b/.travis.yml
index 4c7b31b0ea..88a1c760ba 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,8 +10,10 @@ matrix:
env: deps=low
- php: 5.6
env: deps=high
+ - php: nightly
- php: hhvm-nightly
allow_failures:
+ - php: nightly
- php: hhvm-nightly
fast_finish: true
@@ -25,12 +27,12 @@ env:
before_install:
- travis_retry sudo apt-get install parallel
- composer self-update
- - if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then phpenv config-rm xdebug.ini; fi;
- - if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
- - if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ] && [ $(php -r "echo PHP_MINOR_VERSION;") -le 4 ]; then echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
- - if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then pecl install -f memcached-2.1.0; fi;
- - if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
- - if [ "$TRAVIS_PHP_VERSION" != "hhvm-nightly" ]; then php -i; fi;
+ - if [[ "$TRAVIS_PHP_VERSION" != *"nightly" ]]; then phpenv config-rm xdebug.ini; fi;
+ - if [[ "$TRAVIS_PHP_VERSION" != *"nightly" ]]; then echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
+ - if [[ "$TRAVIS_PHP_VERSION" != *"nightly" ]] && [ $(php -r "echo PHP_MINOR_VERSION;") -le 4 ]; then echo "extension = apc.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
+ - if [[ "$TRAVIS_PHP_VERSION" != *"nightly" ]]; then pecl install -f memcached-2.1.0; fi;
+ - if [[ "$TRAVIS_PHP_VERSION" != *"nightly" ]]; then echo "extension = memcache.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini; fi;
+ - if [[ "$TRAVIS_PHP_VERSION" != *"nightly" ]]; then php -i; fi;
- sudo locale-gen fr_FR.UTF-8 && sudo update-locale
# Set the COMPOSER_ROOT_VERSION to the right version according to the branch being built
- if [ "$TRAVIS_BRANCH" = "master" ]; then export COMPOSER_ROOT_VERSION=dev-master; else export COMPOSER_ROOT_VERSION="$TRAVIS_BRANCH".x-dev; fi;
@@ -39,8 +41,9 @@ install:
- if [ "$deps" = "no" ]; then composer --prefer-source install; fi;
script:
+ - components=$(find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist -printf '%h\n')
- if [ "$deps" = "no" ]; then export SYMFONY_DEPRECATIONS_HELPER=strict; fi;
- - if [ "$deps" = "no" ]; then ls -d src/Symfony/*/* | parallel --gnu --keep-order 'echo -e "\\nRunning {} tests"; phpunit --exclude-group tty,benchmark,intl-data {} || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1));'; fi;
+ - if [ "$deps" = "no" ]; then echo "$components" | parallel --gnu --keep-order 'echo -e "\\nRunning {} tests"; phpunit --exclude-group tty,benchmark,intl-data {} || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1));'; fi;
- if [ "$deps" = "no" ]; then echo -e "\\nRunning tests requiring tty"; phpunit --group tty || (echo -e "\\e[41mKO\\e[0m tty group" && $(exit 1)); fi;
- - if [ "$deps" = "high" ]; then find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist | sed 's#\(.*\)/.*#\1#' | parallel --gnu --keep-order -j25% 'echo -e "\\nRunning {} tests"; cd {}; composer --prefer-source update; phpunit --exclude-group tty,benchmark,intl-data,legacy || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1));'; fi;
- - if [ "$deps" = "low" ]; then find src/Symfony -mindepth 3 -type f -name phpunit.xml.dist | sed 's#\(.*\)/.*#\1#' | parallel --gnu --keep-order -j25% 'echo -e "\\nRunning {} tests"; cd {}; composer --prefer-source --prefer-lowest --prefer-stable update; phpunit --exclude-group tty,benchmark,intl-data || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1));'; fi;
+ - if [ "$deps" = "high" ]; then echo "$components" | parallel --gnu --keep-order -j25% 'echo -e "\\nRunning {} tests"; cd {}; composer --prefer-source update; phpunit --exclude-group tty,benchmark,intl-data,legacy || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1));'; fi;
+ - if [ "$deps" = "low" ]; then echo "$components" | parallel --gnu --keep-order -j25% 'echo -e "\\nRunning {} tests"; cd {}; composer --prefer-source --prefer-lowest --prefer-stable update; phpunit --exclude-group tty,benchmark,intl-data || (echo -e "\\e[41mKO\\e[0m {}" && $(exit 1));'; fi;
diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig
index f82979cd62..6135d1016a 100644
--- a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig
+++ b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig
@@ -1,4 +1,4 @@
-{% extends "form_div_layout.html.twig" %}
+{% use "form_div_layout.html.twig" %}
{# Widgets #}
@@ -164,12 +164,12 @@
{% if parent_label_class is defined %}
{% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' ' ~ parent_label_class)|trim}) %}
{% endif %}
- {% if label is empty %}
+ {% if label is not sameas(false) and label is empty %}
{% set label = name|humanize %}
{% endif %}
{% endif %}
{% endblock checkbox_radio_label %}
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
index a365836825..e544df9282 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
@@ -388,7 +388,7 @@ class Configuration implements ConfigurationInterface
);
foreach ($urls as $i => $url) {
- if (is_integer($i)) {
+ if (is_int($i)) {
if (0 === strpos($url, 'https://') || 0 === strpos($url, '//')) {
$urls['http'][] = $urls['ssl'][] = $url;
} else {
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
index a070e19ae5..2fde6a02e6 100644
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
@@ -303,7 +303,7 @@ class FrameworkExtension extends Extension
'memcached' => 'Symfony\Component\HttpKernel\Profiler\MemcachedProfilerStorage',
'redis' => 'Symfony\Component\HttpKernel\Profiler\RedisProfilerStorage',
);
- list($class, ) = explode(':', $config['dsn'], 2);
+ list($class) = explode(':', $config['dsn'], 2);
if (!isset($supported[$class])) {
throw new \LogicException(sprintf('Driver "%s" is not supported for the profiler.', $class));
}
diff --git a/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php b/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php
index ac49ffd224..fb74795736 100644
--- a/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php
+++ b/src/Symfony/Component/Config/Definition/Builder/ArrayNodeDefinition.php
@@ -472,7 +472,7 @@ class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinition
);
}
- if (null !== $this->key && (null === $this->addDefaultChildren || is_integer($this->addDefaultChildren) && $this->addDefaultChildren > 0)) {
+ if (null !== $this->key && (null === $this->addDefaultChildren || is_int($this->addDefaultChildren) && $this->addDefaultChildren > 0)) {
throw new InvalidDefinitionException(
sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s"', $path)
);
diff --git a/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php b/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php
index fe12ff3b21..ee90be9c39 100644
--- a/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php
+++ b/src/Symfony/Component/Config/Definition/PrototypedArrayNode.php
@@ -117,7 +117,7 @@ class PrototypedArrayNode extends ArrayNode
if (null === $children) {
$this->defaultChildren = array('defaults');
} else {
- $this->defaultChildren = is_integer($children) && $children > 0 ? range(1, $children) : (array) $children;
+ $this->defaultChildren = is_int($children) && $children > 0 ? range(1, $children) : (array) $children;
}
}
diff --git a/src/Symfony/Component/Config/Util/XmlUtils.php b/src/Symfony/Component/Config/Util/XmlUtils.php
index f2e2b2c4e5..d0107c1a33 100644
--- a/src/Symfony/Component/Config/Util/XmlUtils.php
+++ b/src/Symfony/Component/Config/Util/XmlUtils.php
@@ -222,7 +222,7 @@ class XmlUtils
LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR',
$error->code,
trim($error->message),
- $error->file ? $error->file : 'n/a',
+ $error->file ?: 'n/a',
$error->line,
$error->column
);
diff --git a/src/Symfony/Component/Console/Formatter/OutputFormatterStyle.php b/src/Symfony/Component/Console/Formatter/OutputFormatterStyle.php
index 38be37a850..b3f274a8b0 100644
--- a/src/Symfony/Component/Console/Formatter/OutputFormatterStyle.php
+++ b/src/Symfony/Component/Console/Formatter/OutputFormatterStyle.php
@@ -149,7 +149,7 @@ class OutputFormatterStyle implements OutputFormatterStyleInterface
));
}
- if (false === array_search(static::$availableOptions[$option], $this->options)) {
+ if (!in_array(static::$availableOptions[$option], $this->options)) {
$this->options[] = static::$availableOptions[$option];
}
}
diff --git a/src/Symfony/Component/Console/Tests/Helper/LegacyDialogHelperTest.php b/src/Symfony/Component/Console/Tests/Helper/LegacyDialogHelperTest.php
index e58b8de708..961db0bcf0 100644
--- a/src/Symfony/Component/Console/Tests/Helper/LegacyDialogHelperTest.php
+++ b/src/Symfony/Component/Console/Tests/Helper/LegacyDialogHelperTest.php
@@ -177,7 +177,7 @@ class LegacyDialogHelperTest extends \PHPUnit_Framework_TestCase
protected function getInputStream($input)
{
$stream = fopen('php://memory', 'r+', false);
- fputs($stream, $input);
+ fwrite($stream, $input);
rewind($stream);
return $stream;
diff --git a/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php b/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php
index bbe7747b57..ccd889b0aa 100644
--- a/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php
+++ b/src/Symfony/Component/Console/Tests/Helper/QuestionHelperTest.php
@@ -274,7 +274,7 @@ class QuestionHelperTest extends \PHPUnit_Framework_TestCase
protected function getInputStream($input)
{
$stream = fopen('php://memory', 'r+', false);
- fputs($stream, $input);
+ fwrite($stream, $input);
rewind($stream);
return $stream;
diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
index 6fc57aeeb6..6171a7d58a 100644
--- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
+++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
@@ -1175,7 +1175,7 @@ EOF;
$behavior[$id] = $argument->getInvalidBehavior();
}
- $calls[$id] += 1;
+ ++$calls[$id];
}
}
}
@@ -1487,12 +1487,12 @@ EOF;
}
while ($i > 0) {
- $i -= 1;
+ --$i;
$name .= $nonFirstChars[$i%$nonFirstCharsLength];
$i = intval($i/$nonFirstCharsLength);
}
- $this->variableCount += 1;
+ ++$this->variableCount;
// check that the name is not reserved
if (in_array($name, $this->reservedVariables, true)) {
diff --git a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
index cd1a90056d..ad6d3bdfc5 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
@@ -260,7 +260,8 @@ class ContainerBuilderTest extends \PHPUnit_Framework_TestCase
$builder->setResourceTracking(false);
$builderCompilerPasses = $builder->getCompiler()->getPassConfig()->getPasses();
$builder->addCompilerPass($this->getMock('Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface'));
- $this->assertEquals(sizeof($builderCompilerPasses) + 1, sizeof($builder->getCompiler()->getPassConfig()->getPasses()));
+
+ $this->assertCount(count($builder->getCompiler()->getPassConfig()->getPasses()) - 1, $builderCompilerPasses);
}
/**
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
index 01e5710fce..84f210bfb7 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
@@ -74,8 +74,8 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase
$container = new ContainerBuilder();
$container->setDefinition('test', $definition);
- $container->setParameter('foo', 'wiz'.dirname(dirname(__FILE__)));
- $container->setParameter('bar', dirname(__FILE__));
+ $container->setParameter('foo', 'wiz'.dirname(__DIR__));
+ $container->setParameter('bar', __DIR__);
$container->setParameter('baz', '%bar%/PhpDumperTest.php');
$container->setParameter('buz', dirname(dirname(__DIR__)));
$container->compile();
diff --git a/src/Symfony/Component/DomCrawler/Crawler.php b/src/Symfony/Component/DomCrawler/Crawler.php
index 4f52f218b6..e5341b3ffa 100644
--- a/src/Symfony/Component/DomCrawler/Crawler.php
+++ b/src/Symfony/Component/DomCrawler/Crawler.php
@@ -45,9 +45,10 @@ class Crawler extends \SplObjectStorage
/**
* Constructor.
*
- * @param mixed $node A Node to use as the base for the crawling
+ * @param mixed $node A Node to use as the base for the crawling
* @param string $currentUri The current URI
- * @param string $baseHref The base href value
+ * @param string $baseHref The base href value
+ *
* @api
*/
public function __construct($node = null, $currentUri = null, $baseHref = null)
diff --git a/src/Symfony/Component/DomCrawler/Tests/CrawlerTest.php b/src/Symfony/Component/DomCrawler/Tests/CrawlerTest.php
index 82045a1dd5..1431908591 100755
--- a/src/Symfony/Component/DomCrawler/Tests/CrawlerTest.php
+++ b/src/Symfony/Component/DomCrawler/Tests/CrawlerTest.php
@@ -327,7 +327,7 @@ EOF
{
$crawler = $this->createTestCrawler()->filterXPath('//ul[1]/li');
$nodes = $crawler->reduce(function ($node, $i) {
- return $i == 1 ? false : true;
+ return $i !== 1;
});
$this->assertNotSame($nodes, $crawler, '->reduce() returns a new instance of a crawler');
$this->assertInstanceOf('Symfony\\Component\\DomCrawler\\Crawler', $nodes, '->reduce() returns a new instance of a crawler');
diff --git a/src/Symfony/Component/Form/AbstractRendererEngine.php b/src/Symfony/Component/Form/AbstractRendererEngine.php
index 00bf85401c..8202cbf97b 100644
--- a/src/Symfony/Component/Form/AbstractRendererEngine.php
+++ b/src/Symfony/Component/Form/AbstractRendererEngine.php
@@ -67,8 +67,7 @@ abstract class AbstractRendererEngine implements FormRendererEngineInterface
// Unset instead of resetting to an empty array, in order to allow
// implementations (like TwigRendererEngine) to check whether $cacheKey
// is set at all.
- unset($this->resources[$cacheKey]);
- unset($this->resourceHierarchyLevels[$cacheKey]);
+ unset($this->resources[$cacheKey], $this->resourceHierarchyLevels[$cacheKey]);
}
/**
diff --git a/src/Symfony/Component/Form/FormBuilder.php b/src/Symfony/Component/Form/FormBuilder.php
index 9437dad1c1..8b5b919413 100644
--- a/src/Symfony/Component/Form/FormBuilder.php
+++ b/src/Symfony/Component/Form/FormBuilder.php
@@ -138,8 +138,7 @@ class FormBuilder extends FormConfigBuilder implements \IteratorAggregate, FormB
throw new BadMethodCallException('FormBuilder methods cannot be accessed anymore once the builder is turned into a FormConfigInterface instance.');
}
- unset($this->unresolvedChildren[$name]);
- unset($this->children[$name]);
+ unset($this->unresolvedChildren[$name], $this->children[$name]);
return $this;
}
diff --git a/src/Symfony/Component/Form/FormEvents.php b/src/Symfony/Component/Form/FormEvents.php
index 025383eafd..ac556405d2 100644
--- a/src/Symfony/Component/Form/FormEvents.php
+++ b/src/Symfony/Component/Form/FormEvents.php
@@ -14,10 +14,10 @@ use Symfony\Component\Form\Deprecated\FormEvents as Deprecated;
/**
* To learn more about how form events work check the documentation
- * entry at {@link http://symfony.com/doc/any/components/form/form_events.html}
+ * entry at {@link http://symfony.com/doc/any/components/form/form_events.html}.
*
* To learn how to dynamically modify forms using events check the cookbook
- * entry at {@link http://symfony.com/doc/any/cookbook/form/dynamic_form_modification.html}
+ * entry at {@link http://symfony.com/doc/any/cookbook/form/dynamic_form_modification.html}.
*
* @author Bernhard Schussek
*/
diff --git a/src/Symfony/Component/Form/FormRenderer.php b/src/Symfony/Component/Form/FormRenderer.php
index c5faee1548..b286ffdf41 100644
--- a/src/Symfony/Component/Form/FormRenderer.php
+++ b/src/Symfony/Component/Form/FormRenderer.php
@@ -296,8 +296,7 @@ class FormRenderer implements FormRendererInterface
// Clear the caches if they were filled for the first time within
// this function call
if ($hierarchyInit) {
- unset($this->blockNameHierarchyMap[$viewAndSuffixCacheKey]);
- unset($this->hierarchyLevelMap[$viewAndSuffixCacheKey]);
+ unset($this->blockNameHierarchyMap[$viewAndSuffixCacheKey], $this->hierarchyLevelMap[$viewAndSuffixCacheKey]);
}
if ($varInit) {
diff --git a/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php b/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php
index 3060472975..090eb8bc4f 100644
--- a/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php
+++ b/src/Symfony/Component/Form/Test/FormPerformanceTestCase.php
@@ -54,7 +54,7 @@ abstract class FormPerformanceTestCase extends FormIntegrationTestCase
*/
public function setMaxRunningTime($maxRunningTime)
{
- if (is_integer($maxRunningTime) && $maxRunningTime >= 0) {
+ if (is_int($maxRunningTime) && $maxRunningTime >= 0) {
$this->maxRunningTime = $maxRunningTime;
} else {
throw new \InvalidArgumentException();
diff --git a/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php b/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php
index 0e7b2f8419..9a49e2f3c8 100644
--- a/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php
+++ b/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php
@@ -147,8 +147,7 @@ class RouterListener implements EventSubscriberInterface
}
$request->attributes->add($parameters);
- unset($parameters['_route']);
- unset($parameters['_controller']);
+ unset($parameters['_route'], $parameters['_controller']);
$request->attributes->set('_route_params', $parameters);
} catch (ResourceNotFoundException $e) {
$message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getPathInfo());
diff --git a/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php b/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
index 86d8812530..4303ab1343 100644
--- a/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
+++ b/src/Symfony/Component/HttpKernel/Tests/DataCollector/LoggerDataCollectorTest.php
@@ -29,7 +29,7 @@ class LoggerDataCollectorTest extends \PHPUnit_Framework_TestCase
$this->assertSame('logger', $c->getName());
$this->assertSame($nb, $c->countErrors());
- $this->assertSame($expectedLogs ? $expectedLogs : $logs, $c->getLogs());
+ $this->assertSame($expectedLogs ?: $logs, $c->getLogs());
$this->assertSame($expectedDeprecationCount, $c->countDeprecations());
$this->assertSame($expectedScreamCount, $c->countScreams());
diff --git a/src/Symfony/Component/OptionsResolver/OptionsResolver.php b/src/Symfony/Component/OptionsResolver/OptionsResolver.php
index 7fdfa5b458..175490a95b 100644
--- a/src/Symfony/Component/OptionsResolver/OptionsResolver.php
+++ b/src/Symfony/Component/OptionsResolver/OptionsResolver.php
@@ -258,7 +258,7 @@ class OptionsResolver implements Options, OptionsResolverInterface
throw new AccessException('Options cannot be made required from a lazy option or normalizer.');
}
- foreach ((array) $optionNames as $key => $option) {
+ foreach ((array) $optionNames as $option) {
$this->defined[$option] = true;
$this->required[$option] = true;
}
@@ -339,7 +339,7 @@ class OptionsResolver implements Options, OptionsResolverInterface
throw new AccessException('Options cannot be defined from a lazy option or normalizer.');
}
- foreach ((array) $optionNames as $key => $option) {
+ foreach ((array) $optionNames as $option) {
$this->defined[$option] = true;
}
@@ -686,14 +686,8 @@ class OptionsResolver implements Options, OptionsResolverInterface
}
foreach ((array) $optionNames as $option) {
- unset($this->defined[$option]);
- unset($this->defaults[$option]);
- unset($this->required[$option]);
- unset($this->resolved[$option]);
- unset($this->lazy[$option]);
- unset($this->normalizers[$option]);
- unset($this->allowedTypes[$option]);
- unset($this->allowedValues[$option]);
+ unset($this->defined[$option], $this->defaults[$option], $this->required[$option], $this->resolved[$option]);
+ unset($this->lazy[$option], $this->normalizers[$option], $this->allowedTypes[$option], $this->allowedValues[$option]);
}
return $this;
diff --git a/src/Symfony/Component/PropertyAccess/PropertyAccessor.php b/src/Symfony/Component/PropertyAccess/PropertyAccessor.php
index 8a2e375410..3b3c642bf6 100644
--- a/src/Symfony/Component/PropertyAccess/PropertyAccessor.php
+++ b/src/Symfony/Component/PropertyAccess/PropertyAccessor.php
@@ -70,7 +70,6 @@ class PropertyAccessor implements PropertyAccessorInterface
}
$propertyValues = & $this->readPropertiesUntil($objectOrArray, $propertyPath, $propertyPath->getLength() - 1);
- $overwrite = true;
// Add the root object to the list
array_unshift($propertyValues, array(
@@ -81,18 +80,19 @@ class PropertyAccessor implements PropertyAccessorInterface
for ($i = count($propertyValues) - 1; $i >= 0; --$i) {
$objectOrArray = & $propertyValues[$i][self::VALUE];
- if ($overwrite) {
- $property = $propertyPath->getElement($i);
+ $property = $propertyPath->getElement($i);
- if ($propertyPath->isIndex($i)) {
- $this->writeIndex($objectOrArray, $property, $value);
- } else {
- $this->writeProperty($objectOrArray, $property, $value);
- }
+ if ($propertyPath->isIndex($i)) {
+ $this->writeIndex($objectOrArray, $property, $value);
+ } else {
+ $this->writeProperty($objectOrArray, $property, $value);
+ }
+
+ if ($propertyValues[$i][self::IS_REF]) {
+ return;
}
$value = & $objectOrArray;
- $overwrite = !$propertyValues[$i][self::IS_REF];
}
}
@@ -127,7 +127,6 @@ class PropertyAccessor implements PropertyAccessorInterface
try {
$propertyValues = $this->readPropertiesUntil($objectOrArray, $propertyPath, $propertyPath->getLength() - 1);
- $overwrite = true;
// Add the root object to the list
array_unshift($propertyValues, array(
@@ -138,21 +137,21 @@ class PropertyAccessor implements PropertyAccessorInterface
for ($i = count($propertyValues) - 1; $i >= 0; --$i) {
$objectOrArray = $propertyValues[$i][self::VALUE];
- if ($overwrite) {
- $property = $propertyPath->getElement($i);
+ $property = $propertyPath->getElement($i);
- if ($propertyPath->isIndex($i)) {
- if (!$objectOrArray instanceof \ArrayAccess && !is_array($objectOrArray)) {
- return false;
- }
- } else {
- if (!$this->isPropertyWritable($objectOrArray, $property)) {
- return false;
- }
+ if ($propertyPath->isIndex($i)) {
+ if (!$objectOrArray instanceof \ArrayAccess && !is_array($objectOrArray)) {
+ return false;
+ }
+ } else {
+ if (!$this->isPropertyWritable($objectOrArray, $property)) {
+ return false;
}
}
- $overwrite = !$propertyValues[$i][self::IS_REF];
+ if ($propertyValues[$i][self::IS_REF]) {
+ return true;
+ }
}
return true;
diff --git a/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php b/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php
index 079da283f2..5d7fdac6fd 100644
--- a/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php
+++ b/src/Symfony/Component/PropertyAccess/PropertyPathBuilder.php
@@ -264,8 +264,7 @@ class PropertyPathBuilder
// All remaining elements should be removed
for (; $i < $length; ++$i) {
- unset($this->elements[$i]);
- unset($this->isIndex[$i]);
+ unset($this->elements[$i], $this->isIndex[$i]);
}
} else {
$diff = $insertionLength - $cutLength;
diff --git a/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestClass.php b/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestClass.php
index 5cd605b164..7b1b927529 100644
--- a/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestClass.php
+++ b/src/Symfony/Component/PropertyAccess/Tests/Fixtures/TestClass.php
@@ -25,6 +25,7 @@ class TestClass
private $publicAccessorWithMoreRequiredParameters;
private $publicIsAccessor;
private $publicHasAccessor;
+ private $publicGetter;
public function __construct($value)
{
@@ -37,6 +38,7 @@ class TestClass
$this->publicAccessorWithMoreRequiredParameters = $value;
$this->publicIsAccessor = $value;
$this->publicHasAccessor = $value;
+ $this->publicGetter = $value;
}
public function setPublicAccessor($value)
@@ -166,4 +168,9 @@ class TestClass
{
return 'foobar';
}
+
+ public function getPublicGetter()
+ {
+ return $this->publicGetter;
+ }
}
diff --git a/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php b/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
index 6b55d449ae..690fcd262d 100644
--- a/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
+++ b/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
@@ -419,6 +419,14 @@ class PropertyAccessorTest extends \PHPUnit_Framework_TestCase
array(array('index' => array('%!@$§.' => 'Bernhard')), '[index][%!@$§.]', 'Bernhard'),
array((object) array('%!@$§' => 'Bernhard'), '%!@$§', 'Bernhard'),
array((object) array('property' => (object) array('%!@$§' => 'Bernhard')), 'property.%!@$§', 'Bernhard'),
+
+ // nested objects and arrays
+ array(array('foo' => new TestClass('bar')), '[foo].publicGetSetter', 'bar'),
+ array(new TestClass(array('foo' => 'bar')), 'publicGetSetter[foo]', 'bar'),
+ array(new TestClass(new TestClass('bar')), 'publicGetter.publicGetSetter', 'bar'),
+ array(new TestClass(array('foo' => new TestClass('bar'))), 'publicGetter[foo].publicGetSetter', 'bar'),
+ array(new TestClass(new TestClass(new TestClass('bar'))), 'publicGetter.publicGetter.publicGetSetter', 'bar'),
+ array(new TestClass(array('foo' => array('baz' => new TestClass('bar')))), 'publicGetter[foo][baz].publicGetSetter', 'bar'),
);
}
diff --git a/src/Symfony/Component/Security/Acl/Dbal/AclProvider.php b/src/Symfony/Component/Security/Acl/Dbal/AclProvider.php
index 705b4ffd8d..fd6f5baab4 100644
--- a/src/Symfony/Component/Security/Acl/Dbal/AclProvider.php
+++ b/src/Symfony/Component/Security/Acl/Dbal/AclProvider.php
@@ -173,7 +173,8 @@ class AclProvider implements AclProviderInterface
}
// Is it time to load the current batch?
- if ((self::MAX_BATCH_SIZE === count($currentBatch) || ($i + 1) === $c) && count($currentBatch) > 0) {
+ $currentBatchesCount = count($currentBatch);
+ if ($currentBatchesCount > 0 && (self::MAX_BATCH_SIZE === $currentBatchesCount || ($i + 1) === $c)) {
try {
$loadedBatch = $this->lookupObjectIdentities($currentBatch, $sids, $oidLookup);
} catch (AclNotFoundException $aclNotFoundException) {
@@ -559,10 +560,11 @@ QUERY;
// attach ACL to the result set; even though we do not enforce that every
// object identity has only one instance, we must make sure to maintain
// referential equality with the oids passed to findAcls()
- if (!isset($oidCache[$objectIdentifier.$classType])) {
- $oidCache[$objectIdentifier.$classType] = $acl->getObjectIdentity();
+ $oidCacheKey = $objectIdentifier.$classType;
+ if (!isset($oidCache[$oidCacheKey])) {
+ $oidCache[$oidCacheKey] = $acl->getObjectIdentity();
}
- $result->attach($oidCache[$objectIdentifier.$classType], $acl);
+ $result->attach($oidCache[$oidCacheKey], $acl);
// so, this hasn't been hydrated yet
} else {
// create object identity if we haven't done so yet
@@ -670,7 +672,7 @@ QUERY;
// let's see if we have already hydrated this
if (isset($acls[$parentId])) {
$aclParentAclProperty->setValue($acl, $acls[$parentId]);
- $processed += 1;
+ ++$processed;
continue;
}
diff --git a/src/Symfony/Component/Security/Acl/Tests/Dbal/AclProviderBenchmarkTest.php b/src/Symfony/Component/Security/Acl/Tests/Dbal/AclProviderBenchmarkTest.php
index dab90d46fd..46a695afa8 100644
--- a/src/Symfony/Component/Security/Acl/Tests/Dbal/AclProviderBenchmarkTest.php
+++ b/src/Symfony/Component/Security/Acl/Tests/Dbal/AclProviderBenchmarkTest.php
@@ -122,7 +122,7 @@ class AclProviderBenchmarkTest extends \PHPUnit_Framework_TestCase
if ($id === 1000 || ($id < 1500 && rand(0, 1))) {
$this->insertClassStmt->execute(array($id, $this->getRandomString(rand(20, 100), 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\\_')));
- $id += 1;
+ ++$id;
return $id-1;
} else {
@@ -148,7 +148,7 @@ class AclProviderBenchmarkTest extends \PHPUnit_Framework_TestCase
}
$this->generateAces($classId, $id);
- $id += 1;
+ ++$id;
return $id-1;
}
@@ -163,7 +163,7 @@ class AclProviderBenchmarkTest extends \PHPUnit_Framework_TestCase
$this->getRandomString(rand(5, 30)),
rand(0, 1),
));
- $id += 1;
+ ++$id;
return $id-1;
} else {
@@ -215,7 +215,7 @@ class AclProviderBenchmarkTest extends \PHPUnit_Framework_TestCase
rand(0, 1),
));
- $id += 1;
+ ++$id;
}
}
diff --git a/src/Symfony/Component/Security/Acl/Tests/Voter/AclVoterTest.php b/src/Symfony/Component/Security/Acl/Tests/Voter/AclVoterTest.php
index c4c0b4edc5..2148135f4b 100644
--- a/src/Symfony/Component/Security/Acl/Tests/Voter/AclVoterTest.php
+++ b/src/Symfony/Component/Security/Acl/Tests/Voter/AclVoterTest.php
@@ -27,7 +27,7 @@ class AclVoterTest extends \PHPUnit_Framework_TestCase
*/
public function testSupportsAttribute($attribute, $supported)
{
- list($voter, , $permissionMap, ,) = $this->getVoter(true, false);
+ list($voter, , $permissionMap) = $this->getVoter(true, false);
$permissionMap
->expects($this->once())
@@ -44,7 +44,7 @@ class AclVoterTest extends \PHPUnit_Framework_TestCase
*/
public function testSupportsAttributeNonString($attribute)
{
- list($voter, , , , ,) = $this->getVoter(true, false);
+ list($voter) = $this->getVoter(true, false);
$this->assertFalse($voter->supportsAttribute($attribute));
}
@@ -72,7 +72,7 @@ class AclVoterTest extends \PHPUnit_Framework_TestCase
*/
public function testSupportsClass($class)
{
- list($voter, , , ,) = $this->getVoter();
+ list($voter) = $this->getVoter();
$this->assertTrue($voter->supportsClass($class));
}
@@ -88,7 +88,7 @@ class AclVoterTest extends \PHPUnit_Framework_TestCase
public function testVote()
{
- list($voter, , $permissionMap, ,) = $this->getVoter();
+ list($voter, , $permissionMap) = $this->getVoter();
$permissionMap
->expects($this->atLeastOnce())
->method('getMasks')
@@ -103,7 +103,7 @@ class AclVoterTest extends \PHPUnit_Framework_TestCase
*/
public function testVoteWhenNoObjectIsPassed($allowIfObjectIdentityUnavailable)
{
- list($voter, , $permissionMap, ,) = $this->getVoter($allowIfObjectIdentityUnavailable);
+ list($voter, , $permissionMap) = $this->getVoter($allowIfObjectIdentityUnavailable);
$permissionMap
->expects($this->once())
->method('getMasks')
@@ -124,7 +124,7 @@ class AclVoterTest extends \PHPUnit_Framework_TestCase
*/
public function testVoteWhenOidStrategyReturnsNull($allowIfUnavailable)
{
- list($voter, , $permissionMap, $oidStrategy,) = $this->getVoter($allowIfUnavailable);
+ list($voter, , $permissionMap, $oidStrategy) = $this->getVoter($allowIfUnavailable);
$permissionMap
->expects($this->once())
->method('getMasks')
diff --git a/src/Symfony/Component/Security/Core/Authentication/Provider/PreAuthenticatedAuthenticationProvider.php b/src/Symfony/Component/Security/Core/Authentication/Provider/PreAuthenticatedAuthenticationProvider.php
index 4f732542ea..c17a9545a0 100644
--- a/src/Symfony/Component/Security/Core/Authentication/Provider/PreAuthenticatedAuthenticationProvider.php
+++ b/src/Symfony/Component/Security/Core/Authentication/Provider/PreAuthenticatedAuthenticationProvider.php
@@ -60,7 +60,7 @@ class PreAuthenticatedAuthenticationProvider implements AuthenticationProviderIn
throw new BadCredentialsException('No pre-authenticated principal found in request.');
}
- $user = $this->userProvider->loadUserByUsername($user);
+ $user = $this->userProvider->loadUserByUsername($user);
$this->userChecker->checkPostAuth($user);
diff --git a/src/Symfony/Component/Security/Core/Tests/Util/SecureRandomTest.php b/src/Symfony/Component/Security/Core/Tests/Util/SecureRandomTest.php
index 6e12ef2dd8..590efd3a74 100644
--- a/src/Symfony/Component/Security/Core/Tests/Util/SecureRandomTest.php
+++ b/src/Symfony/Component/Security/Core/Tests/Util/SecureRandomTest.php
@@ -41,7 +41,7 @@ class SecureRandomTest extends \PHPUnit_Framework_TestCase
for ($j = 1; $j <= 5000; $j++) {
$k = 4 * $j - 1;
- $c[8 * $b[$k - 3] + 4 * $b[$k - 2] + 2 * $b[$k - 1] + $b[$k]] += 1;
+ ++$c[8 * $b[$k - 3] + 4 * $b[$k - 2] + 2 * $b[$k - 1] + $b[$k]];
}
$f = 0;
@@ -73,14 +73,14 @@ class SecureRandomTest extends \PHPUnit_Framework_TestCase
$run = 6;
}
- $runs[$run] += 1;
+ ++$runs[$run];
};
$currentRun = 0;
$lastBit = null;
for ($i = 0; $i < 20000; $i++) {
if ($lastBit === $b[$i]) {
- $currentRun += 1;
+ ++$currentRun;
} else {
if ($currentRun > 0) {
$addRun($currentRun);
@@ -115,7 +115,7 @@ class SecureRandomTest extends \PHPUnit_Framework_TestCase
$lastBit = null;
for ($i = 0; $i < 20000; $i++) {
if ($lastBit === $b[$i]) {
- $currentRun += 1;
+ ++$currentRun;
} else {
if ($currentRun > $longestRun) {
$longestRun = $currentRun;
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php
index d7d1826cb8..3d409e5457 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php
@@ -172,9 +172,9 @@ class ExceptionListenerTest extends \PHPUnit_Framework_TestCase
private function createExceptionListener(TokenStorageInterface $tokenStorage = null, AuthenticationTrustResolverInterface $trustResolver = null, HttpUtils $httpUtils = null, AuthenticationEntryPointInterface $authenticationEntryPoint = null, $errorPage = null, AccessDeniedHandlerInterface $accessDeniedHandler = null)
{
return new ExceptionListener(
- $tokenStorage ? $tokenStorage : $this->getMock('Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface'),
- $trustResolver ? $trustResolver : $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface'),
- $httpUtils ? $httpUtils : $this->getMock('Symfony\Component\Security\Http\HttpUtils'),
+ $tokenStorage ?: $this->getMock('Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface'),
+ $trustResolver ?: $this->getMock('Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolverInterface'),
+ $httpUtils ?: $this->getMock('Symfony\Component\Security\Http\HttpUtils'),
'key',
$authenticationEntryPoint,
$errorPage,
diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php
index f6c30b8334..ec1c35d708 100644
--- a/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php
+++ b/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php
@@ -20,7 +20,7 @@ class RememberMeListenerTest extends \PHPUnit_Framework_TestCase
{
public function testOnCoreSecurityDoesNotTryToPopulateNonEmptyTokenStorage()
{
- list($listener, $tokenStorage, , , ,) = $this->getListener();
+ list($listener, $tokenStorage) = $this->getListener();
$tokenStorage
->expects($this->once())
@@ -38,7 +38,7 @@ class RememberMeListenerTest extends \PHPUnit_Framework_TestCase
public function testOnCoreSecurityDoesNothingWhenNoCookieIsSet()
{
- list($listener, $tokenStorage, $service, ,) = $this->getListener();
+ list($listener, $tokenStorage, $service) = $this->getListener();
$tokenStorage
->expects($this->once())
@@ -64,7 +64,7 @@ class RememberMeListenerTest extends \PHPUnit_Framework_TestCase
public function testOnCoreSecurityIgnoresAuthenticationExceptionThrownByAuthenticationManagerImplementation()
{
- list($listener, $tokenStorage, $service, $manager,) = $this->getListener();
+ list($listener, $tokenStorage, $service, $manager) = $this->getListener();
$tokenStorage
->expects($this->once())
@@ -144,7 +144,7 @@ class RememberMeListenerTest extends \PHPUnit_Framework_TestCase
public function testOnCoreSecurity()
{
- list($listener, $tokenStorage, $service, $manager,) = $this->getListener();
+ list($listener, $tokenStorage, $service, $manager) = $this->getListener();
$tokenStorage
->expects($this->once())
diff --git a/src/Symfony/Component/Translation/Loader/XliffFileLoader.php b/src/Symfony/Component/Translation/Loader/XliffFileLoader.php
index aa60c438d7..c3a50cd8bb 100644
--- a/src/Symfony/Component/Translation/Loader/XliffFileLoader.php
+++ b/src/Symfony/Component/Translation/Loader/XliffFileLoader.php
@@ -171,7 +171,7 @@ class XliffFileLoader implements LoaderInterface
LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR',
$error->code,
trim($error->message),
- $error->file ? $error->file : 'n/a',
+ $error->file ?: 'n/a',
$error->line,
$error->column
);
diff --git a/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php b/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
index 321f1ea439..2ae89886c8 100644
--- a/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
+++ b/src/Symfony/Component/Validator/Mapping/Loader/AbstractLoader.php
@@ -58,13 +58,13 @@ abstract class AbstractLoader implements LoaderInterface
/**
* Creates a new constraint instance for the given constraint name.
*
- * @param string $name The constraint name. Either a constraint relative
- * to the default constraint namespace, or a fully
- * qualified class name. Alternatively, the constraint
- * may be preceded by a namespace alias and a colon.
- * The namespace alias must have been defined using
- * {@link addNamespaceAlias()}.
- * @param mixed $options The constraint options
+ * @param string $name The constraint name. Either a constraint relative
+ * to the default constraint namespace, or a fully
+ * qualified class name. Alternatively, the constraint
+ * may be preceded by a namespace alias and a colon.
+ * The namespace alias must have been defined using
+ * {@link addNamespaceAlias()}.
+ * @param mixed $options The constraint options
*
* @return Constraint
*
diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf
index fb00dd5d93..1d0cc13c86 100644
--- a/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf
+++ b/src/Symfony/Component/Validator/Resources/translations/validators.gl.xlf
@@ -278,6 +278,38 @@
This value should not be identical to {{ compared_value_type }} {{ compared_value }}.
Este valor non debería ser identico a {{ compared_value_type }} {{ compared_value }}.
+
+ The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.
+ A proporción da imaxe é demasiado grande ({{ ratio }}). A proporción máxima permitida é {{ max_ratio }}.
+
+
+ The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.
+ A proporción da é demasiado pequena ({{ ratio }}). A proporción mínima permitida é {{ min_ratio }}.
+
+
+ The image is square ({{ width }}x{{ height }}px). Square images are not allowed.
+ A imaxe é cadrada ({{ width }}x{{ height }}px). As imáxenes cadradas non están permitidas.
+
+
+ The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.
+ A imaxe está orientada horizontalmente ({{ width }}x{{ height }}px). As imáxenes orientadas horizontalmente non están permitidas.
+
+
+ The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.
+ A imaxe está orientada verticalmente ({{ width }}x{{ height }}px). As imáxenes orientadas verticalmente non están permitidas.
+
+
+ An empty file is not allowed.
+ Non está permitido un arquivo baleiro.
+
+
+ The host could not be resolved.
+ Non se puido resolver o host.
+
+
+ This value does not match the expected {{ charset }} charset.
+ A codificación de caracteres para este valor debería ser {{ charset }}.
+