From 7f46dfb1c4ce5e45a5f1918ad6223a3bbdd52a0b Mon Sep 17 00:00:00 2001 From: Samuel NELA Date: Tue, 25 Dec 2018 01:54:22 +0100 Subject: [PATCH 01/19] [Stopwatch] Fixed phpdoc for category name --- src/Symfony/Component/Stopwatch/Stopwatch.php | 4 ++-- src/Symfony/Component/Stopwatch/Tests/StopwatchTest.php | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Stopwatch/Stopwatch.php b/src/Symfony/Component/Stopwatch/Stopwatch.php index 9da84f6ec0..e0024b0d16 100644 --- a/src/Symfony/Component/Stopwatch/Stopwatch.php +++ b/src/Symfony/Component/Stopwatch/Stopwatch.php @@ -96,8 +96,8 @@ class Stopwatch /** * Starts an event. * - * @param string $name The event name - * @param string $category The event category + * @param string $name The event name + * @param string|null $category The event category * * @return StopwatchEvent */ diff --git a/src/Symfony/Component/Stopwatch/Tests/StopwatchTest.php b/src/Symfony/Component/Stopwatch/Tests/StopwatchTest.php index 10e6a14af6..a5cb3dd92a 100644 --- a/src/Symfony/Component/Stopwatch/Tests/StopwatchTest.php +++ b/src/Symfony/Component/Stopwatch/Tests/StopwatchTest.php @@ -35,6 +35,14 @@ class StopwatchTest extends TestCase $this->assertSame($event, $stopwatch->getEvent('foo')); } + public function testStartWithoutCategory() + { + $stopwatch = new Stopwatch(); + $stopwatchEvent = $stopwatch->start('bar'); + $this->assertSame('default', $stopwatchEvent->getCategory()); + $this->assertSame($stopwatchEvent, $stopwatch->getEvent('bar')); + } + public function testIsStarted() { $stopwatch = new Stopwatch(); From a7755f866380a3159be74fd234386fa0b951d6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Thu, 27 Dec 2018 19:08:15 +0100 Subject: [PATCH 02/19] Fix: Method can also return null --- .../Component/Process/ExecutableFinder.php | 2 +- .../Process/Tests/ExecutableFinderTest.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Process/ExecutableFinder.php b/src/Symfony/Component/Process/ExecutableFinder.php index ccfa4c09b0..ad2c76ab60 100644 --- a/src/Symfony/Component/Process/ExecutableFinder.php +++ b/src/Symfony/Component/Process/ExecutableFinder.php @@ -46,7 +46,7 @@ class ExecutableFinder * @param string $default The default to return if no executable is found * @param array $extraDirs Additional dirs to check into * - * @return string The executable path or default value + * @return string|null The executable path or default value */ public function find($name, $default = null, array $extraDirs = array()) { diff --git a/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php b/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php index ee25eda02b..7959b5dc5e 100644 --- a/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php +++ b/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php @@ -65,6 +65,21 @@ class ExecutableFinderTest extends TestCase $this->assertEquals($expected, $result); } + public function testFindWithNullAsDefault() + { + if (ini_get('open_basedir')) { + $this->markTestSkipped('Cannot test when open_basedir is set'); + } + + $this->setPath(''); + + $finder = new ExecutableFinder(); + + $result = $finder->find('foo'); + + $this->assertNull($result); + } + public function testFindWithExtraDirs() { if (ini_get('open_basedir')) { From 9b400bc720363c79ebd38e3201b5da1b7df05b96 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Fri, 28 Dec 2018 12:28:01 +0100 Subject: [PATCH 03/19] Fixed minor typos --- src/Symfony/Bridge/Doctrine/RegistryInterface.php | 2 +- .../Tests/DependencyInjection/DoctrineExtensionTest.php | 8 ++++---- .../DependencyInjection/Loader/YamlFileLoader.php | 2 +- .../AddAnnotatedClassesToCachePass.php | 2 +- .../Component/Translation/Catalogue/TargetOperation.php | 4 ++-- .../Component/Translation/Tests/TranslatorCacheTest.php | 4 ++-- src/Symfony/Component/Translation/TranslatorInterface.php | 2 +- src/Symfony/Component/VarDumper/Cloner/VarCloner.php | 4 ++-- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Symfony/Bridge/Doctrine/RegistryInterface.php b/src/Symfony/Bridge/Doctrine/RegistryInterface.php index 9bc98217c9..6928f8afd4 100644 --- a/src/Symfony/Bridge/Doctrine/RegistryInterface.php +++ b/src/Symfony/Bridge/Doctrine/RegistryInterface.php @@ -52,7 +52,7 @@ interface RegistryInterface extends ManagerRegistryInterface * it makes sense to get a new one to replace the closed one. * * Be warned that you will get a brand new entity manager as - * the existing one is not useable anymore. This means that any + * the existing one is not usable anymore. This means that any * other object with a dependency on this entity manager will * hold an obsolete reference. You can inject the registry instead * to avoid this problem. diff --git a/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php b/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php index 4540a4bb3f..afb85c35e6 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php @@ -64,7 +64,7 @@ class DoctrineExtensionTest extends TestCase ); $bundles = array( - 'FristBundle' => 'My\FristBundle', + 'FirstBundle' => 'My\FirstBundle', 'SecondBundle' => 'My\SecondBundle', ); @@ -98,7 +98,7 @@ class DoctrineExtensionTest extends TestCase array(), array( 'mappings' => array( - 'FristBundle' => array( + 'FirstBundle' => array( 'mapping' => true, 'is_bundle' => true, ), @@ -132,7 +132,7 @@ class DoctrineExtensionTest extends TestCase ), array( 'mappings' => array( - 'FristBundle' => array( + 'FirstBundle' => array( 'mapping' => true, 'is_bundle' => true, ), @@ -153,7 +153,7 @@ class DoctrineExtensionTest extends TestCase ); $bundles = array( - 'FristBundle' => 'My\FristBundle', + 'FirstBundle' => 'My\FirstBundle', 'SecondBundle' => 'My\SecondBundle', ); diff --git a/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php b/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php index 48cfde60dd..27899f220f 100644 --- a/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php +++ b/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php @@ -595,7 +595,7 @@ class YamlFileLoader extends FileLoader * @param string $id A service identifier * @param string $file A parsed file * - * @throws InvalidArgumentException When errors are occuried + * @throws InvalidArgumentException When errors occur * * @return string|array A parsed callable */ diff --git a/src/Symfony/Component/HttpKernel/DependencyInjection/AddAnnotatedClassesToCachePass.php b/src/Symfony/Component/HttpKernel/DependencyInjection/AddAnnotatedClassesToCachePass.php index 645e8f30ff..4e59123d19 100644 --- a/src/Symfony/Component/HttpKernel/DependencyInjection/AddAnnotatedClassesToCachePass.php +++ b/src/Symfony/Component/HttpKernel/DependencyInjection/AddAnnotatedClassesToCachePass.php @@ -63,7 +63,7 @@ class AddAnnotatedClassesToCachePass implements CompilerPassInterface * @param array $patterns The class patterns to expand * @param array $classes The existing classes to match against the patterns * - * @return array A list of classes derivated from the patterns + * @return array A list of classes derived from the patterns */ private function expandClasses(array $patterns, array $classes) { diff --git a/src/Symfony/Component/Translation/Catalogue/TargetOperation.php b/src/Symfony/Component/Translation/Catalogue/TargetOperation.php index f3b0a29dfb..c2490e12e3 100644 --- a/src/Symfony/Component/Translation/Catalogue/TargetOperation.php +++ b/src/Symfony/Component/Translation/Catalogue/TargetOperation.php @@ -37,10 +37,10 @@ class TargetOperation extends AbstractOperation // For 'all' messages, the code can't be simplified as ``$this->messages[$domain]['all'] = $target->all($domain);``, // because doing so will drop messages like {x: x ∈ source ∧ x ∉ target.all ∧ x ∈ target.fallback} // - // For 'new' messages, the code can't be simplied as ``array_diff_assoc($this->target->all($domain), $this->source->all($domain));`` + // For 'new' messages, the code can't be simplified as ``array_diff_assoc($this->target->all($domain), $this->source->all($domain));`` // because doing so will not exclude messages like {x: x ∈ target ∧ x ∉ source.all ∧ x ∈ source.fallback} // - // For 'obsolete' messages, the code can't be simplifed as ``array_diff_assoc($this->source->all($domain), $this->target->all($domain))`` + // For 'obsolete' messages, the code can't be simplified as ``array_diff_assoc($this->source->all($domain), $this->target->all($domain))`` // because doing so will not exclude messages like {x: x ∈ source ∧ x ∉ target.all ∧ x ∈ target.fallback} foreach ($this->source->all($domain) as $id => $message) { diff --git a/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php b/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php index 3e71ae74ec..49b3748cc2 100644 --- a/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php +++ b/src/Symfony/Component/Translation/Tests/TranslatorCacheTest.php @@ -123,7 +123,7 @@ class TranslatorCacheTest extends TestCase { /* * Similar to the previous test. After we used the second translator, make - * sure there's still a useable cache for the first one. + * sure there's still a usable cache for the first one. */ $locale = 'any_locale'; @@ -142,7 +142,7 @@ class TranslatorCacheTest extends TestCase $translator->addResource($format, array($msgid => 'FAIL'), $locale); $translator->trans($msgid); - // Now the first translator must still have a useable cache. + // Now the first translator must still have a usable cache. $translator = new Translator($locale, null, $this->tmpDir, $debug); $translator->addLoader($format, $this->createFailingLoader()); $translator->addResource($format, array($msgid => 'OK'), $locale); diff --git a/src/Symfony/Component/Translation/TranslatorInterface.php b/src/Symfony/Component/Translation/TranslatorInterface.php index 9fcfd5bcf4..b5033a8bcf 100644 --- a/src/Symfony/Component/Translation/TranslatorInterface.php +++ b/src/Symfony/Component/Translation/TranslatorInterface.php @@ -38,7 +38,7 @@ interface TranslatorInterface * Translates the given choice message by choosing a translation according to a number. * * @param string $id The message id (may also be an object that can be cast to string) - * @param int $number The number to use to find the indice of the message + * @param int $number The number to use to find the index of the message * @param array $parameters An array of parameters for the message * @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 diff --git a/src/Symfony/Component/VarDumper/Cloner/VarCloner.php b/src/Symfony/Component/VarDumper/Cloner/VarCloner.php index 7a3816cf60..5a67515729 100644 --- a/src/Symfony/Component/VarDumper/Cloner/VarCloner.php +++ b/src/Symfony/Component/VarDumper/Cloner/VarCloner.php @@ -32,8 +32,8 @@ class VarCloner extends AbstractCloner $queue = array(array($var)); // This breadth-first queue is the return value $indexedArrays = array(); // Map of queue indexes that hold numerically indexed arrays $hardRefs = array(); // Map of original zval hashes to stub objects - $objRefs = array(); // Map of original object handles to their stub object couterpart - $resRefs = array(); // Map of original resource handles to their stub object couterpart + $objRefs = array(); // Map of original object handles to their stub object counterpart + $resRefs = array(); // Map of original resource handles to their stub object counterpart $values = array(); // Map of stub objects' hashes to original values $maxItems = $this->maxItems; $maxString = $this->maxString; From 51bcdb8dc38b7ab17c80da2f9441ec6a1a015825 Mon Sep 17 00:00:00 2001 From: mlievertz Date: Fri, 28 Dec 2018 07:55:37 -0500 Subject: [PATCH 04/19] [Event Dispatcher] fixed 29703: TraceableEventDispatcher reset now sets callStack to null with test to dispatch after reset. --- .../Debug/TraceableEventDispatcher.php | 2 +- .../Tests/Debug/TraceableEventDispatcherTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php b/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php index 1696f66b6a..4cf0a66d1e 100644 --- a/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php +++ b/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php @@ -221,7 +221,7 @@ class TraceableEventDispatcher implements TraceableEventDispatcherInterface public function reset() { - $this->callStack = array(); + $this->callStack = null; } /** diff --git a/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php b/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php index a7efcafa96..b322d9d682 100644 --- a/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php +++ b/src/Symfony/Component/EventDispatcher/Tests/Debug/TraceableEventDispatcherTest.php @@ -139,6 +139,18 @@ class TraceableEventDispatcherTest extends TestCase $this->assertEquals(array(array('event' => 'foo', 'pretty' => 'closure', 'priority' => 5)), $listeners); } + public function testDispatchAfterReset() + { + $tdispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch()); + $tdispatcher->addListener('foo', function () {}, 5); + + $tdispatcher->reset(); + $tdispatcher->dispatch('foo'); + + $listeners = $tdispatcher->getCalledListeners(); + $this->assertArrayHasKey('stub', $listeners[0]); + } + public function testGetCalledListenersNested() { $tdispatcher = null; From 913fdbe107243f4b92c5246f5a9f5f60c00fa355 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Fri, 28 Dec 2018 11:52:38 +0100 Subject: [PATCH 05/19] Fixed minor typos in an error message --- src/Symfony/Component/Console/Helper/ProcessHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/Helper/ProcessHelper.php b/src/Symfony/Component/Console/Helper/ProcessHelper.php index 0eaa370321..f03774d35d 100644 --- a/src/Symfony/Component/Console/Helper/ProcessHelper.php +++ b/src/Symfony/Component/Console/Helper/ProcessHelper.php @@ -61,7 +61,7 @@ class ProcessHelper extends Helper $process = $cmd[0]; unset($cmd[0]); } else { - throw new \InvalidArgumentException(sprintf('Invalid command provided to "%s()": the command should an array whose first is element is either the path to the binary to run of a "Process" object.', __METHOD__)); + throw new \InvalidArgumentException(sprintf('Invalid command provided to "%s()": the command should be an array whose first element is either the path to the binary to run or a "Process" object.', __METHOD__)); } if ($verbosity <= $output->getVerbosity()) { From 7961a29a57bf4f7fe4885ebf32f4e463268565c4 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 27 Dec 2018 23:36:09 +0100 Subject: [PATCH 06/19] improve error message when using test client without the BrowserKit component --- .../DependencyInjection/FrameworkExtension.php | 5 +++++ src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 9ec02f0722..a7b7beaa72 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -18,6 +18,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Routing\AnnotatedRouteControllerLoader; use Symfony\Bundle\FullStack; +use Symfony\Component\BrowserKit\Client; use Symfony\Component\Cache\Adapter\AbstractAdapter; use Symfony\Component\Cache\Adapter\AdapterInterface; use Symfony\Component\Cache\Adapter\ArrayAdapter; @@ -223,6 +224,10 @@ class FrameworkExtension extends Extension $container->getDefinition('test.client.history')->setPrivate(true); $container->getDefinition('test.client.cookiejar')->setPrivate(true); $container->getDefinition('test.session.listener')->setPrivate(true); + + if (!class_exists(Client::class)) { + $container->removeDefinition('test.client'); + } } if ($this->isConfigEnabled($container, $config['session'])) { diff --git a/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php b/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php index b5aaa2604b..7302dc78aa 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php +++ b/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php @@ -12,6 +12,7 @@ namespace Symfony\Bundle\FrameworkBundle\Test; use Symfony\Bundle\FrameworkBundle\Client; +use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; /** * WebTestCase is the base class for functional tests. @@ -32,7 +33,12 @@ abstract class WebTestCase extends KernelTestCase { $kernel = static::bootKernel($options); - $client = $kernel->getContainer()->get('test.client'); + try { + $client = $kernel->getContainer()->get('test.client'); + } catch (ServiceNotFoundException $e) { + throw new \LogicException('You cannot create the client used in functional tests if the BrowserKit component is not available. Try running "composer require symfony/browser-kit".'); + } + $client->setServerParameters($server); return $client; From 8cff565947e08e16f381fe841163a3eadfa531a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Sun, 30 Dec 2018 15:22:53 +0100 Subject: [PATCH 07/19] Fix random test failure on lock --- .../Component/Lock/Tests/Store/ExpiringStoreTestTrait.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php b/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php index 10b1327387..25da9043bb 100644 --- a/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php +++ b/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php @@ -45,10 +45,10 @@ trait ExpiringStoreTestTrait $store = $this->getStore(); $store->save($key); - $store->putOffExpiration($key, $clockDelay / 1000000); + $store->putOffExpiration($key, 2 * $clockDelay / 1000000); $this->assertTrue($store->exists($key)); - usleep(2 * $clockDelay); + usleep(3 * $clockDelay); $this->assertFalse($store->exists($key)); } @@ -85,10 +85,10 @@ trait ExpiringStoreTestTrait $store = $this->getStore(); $store->save($key); - $store->putOffExpiration($key, $clockDelay / 1000000); + $store->putOffExpiration($key, 2 * $clockDelay / 1000000); $this->assertTrue($store->exists($key)); - usleep(2 * $clockDelay); + usleep(3 * $clockDelay); $this->assertFalse($store->exists($key)); } From 7058f555b5ac95f742cf595ccea87263c21703e7 Mon Sep 17 00:00:00 2001 From: Tim Goudriaan Date: Sat, 15 Dec 2018 00:56:37 +0100 Subject: [PATCH 08/19] [Console] Fix help text for single command applications --- src/Symfony/Component/Console/Application.php | 10 +++++++++- src/Symfony/Component/Console/Command/Command.php | 3 ++- .../Component/Console/Tests/Command/CommandTest.php | 8 ++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Console/Application.php b/src/Symfony/Component/Console/Application.php index 6800360410..b90b03ecef 100644 --- a/src/Symfony/Component/Console/Application.php +++ b/src/Symfony/Component/Console/Application.php @@ -74,7 +74,7 @@ class Application private $dispatcher; private $terminal; private $defaultCommand; - private $singleCommand; + private $singleCommand = false; private $initialized; /** @@ -1162,6 +1162,14 @@ class Application return $this; } + /** + * @internal + */ + public function isSingleCommand() + { + return $this->singleCommand; + } + private function splitStringByWidth($string, $width) { // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly. diff --git a/src/Symfony/Component/Console/Command/Command.php b/src/Symfony/Component/Console/Command/Command.php index d15dce3abb..cd9db7603c 100644 --- a/src/Symfony/Component/Console/Command/Command.php +++ b/src/Symfony/Component/Console/Command/Command.php @@ -533,6 +533,7 @@ class Command public function getProcessedHelp() { $name = $this->name; + $isSingleCommand = $this->application && $this->application->isSingleCommand(); $placeholders = array( '%command.name%', @@ -540,7 +541,7 @@ class Command ); $replacements = array( $name, - $_SERVER['PHP_SELF'].' '.$name, + $isSingleCommand ? $_SERVER['PHP_SELF'] : $_SERVER['PHP_SELF'].' '.$name, ); return str_replace($placeholders, $replacements, $this->getHelp() ?: $this->getDescription()); diff --git a/src/Symfony/Component/Console/Tests/Command/CommandTest.php b/src/Symfony/Component/Console/Tests/Command/CommandTest.php index 6bc3f75b93..09c89c4167 100644 --- a/src/Symfony/Component/Console/Tests/Command/CommandTest.php +++ b/src/Symfony/Component/Console/Tests/Command/CommandTest.php @@ -166,6 +166,14 @@ class CommandTest extends TestCase $command = new \TestCommand(); $command->setHelp(''); $this->assertContains('description', $command->getProcessedHelp(), '->getProcessedHelp() falls back to the description'); + + $command = new \TestCommand(); + $command->setHelp('The %command.name% command does... Example: php %command.full_name%.'); + $application = new Application(); + $application->add($command); + $application->setDefaultCommand('namespace:name', true); + $this->assertContains('The namespace:name command does...', $command->getProcessedHelp(), '->getProcessedHelp() replaces %command.name% correctly in single command applications'); + $this->assertNotContains('%command.full_name%', $command->getProcessedHelp(), '->getProcessedHelp() replaces %command.full_name% in single command applications'); } public function testGetSetAliases() From a7df429a8f550529f781385b14ab85e35aff525a Mon Sep 17 00:00:00 2001 From: Roland Franssen Date: Sat, 29 Dec 2018 09:16:09 +0100 Subject: [PATCH 09/19] [SecurityBundle] Fix traceable voters --- .../Compiler/AddSecurityVotersPass.php | 15 +++++++------ .../Compiler/AddSecurityVotersPassTest.php | 22 +++++++------------ 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php index 7fc80e4977..2b76e2883e 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSecurityVotersPass.php @@ -44,7 +44,7 @@ class AddSecurityVotersPass implements CompilerPassInterface } $debug = $container->getParameter('kernel.debug'); - + $voterServices = array(); foreach ($voters as $voter) { $voterServiceId = (string) $voter; $definition = $container->getDefinition($voterServiceId); @@ -56,17 +56,18 @@ class AddSecurityVotersPass implements CompilerPassInterface } if ($debug) { - // Decorate original voters with TraceableVoter - $debugVoterServiceId = 'debug.security.voter.'.$voterServiceId; + $voterServices[] = new Reference($debugVoterServiceId = 'debug.security.voter.'.$voterServiceId); + $container ->register($debugVoterServiceId, TraceableVoter::class) - ->setDecoratedService($voterServiceId) - ->addArgument(new Reference($debugVoterServiceId.'.inner')) + ->addArgument($voter) ->addArgument(new Reference('event_dispatcher')); + } else { + $voterServices[] = $voter; } } - $adm = $container->getDefinition('security.access.decision_manager'); - $adm->replaceArgument(0, new IteratorArgument($voters)); + $container->getDefinition('security.access.decision_manager') + ->replaceArgument(0, new IteratorArgument($voterServices)); } } diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSecurityVotersPassTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSecurityVotersPassTest.php index ecc9717d4f..4d26df7d60 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSecurityVotersPassTest.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSecurityVotersPassTest.php @@ -72,10 +72,7 @@ class AddSecurityVotersPassTest extends TestCase $this->assertCount(4, $refs); } - /** - * Test that in debug mode, voters are correctly decorated. - */ - public function testThatVotersAreDecoratedInDebugMode(): void + public function testThatVotersAreTraceableInDebugMode(): void { $container = new ContainerBuilder(); @@ -96,21 +93,18 @@ class AddSecurityVotersPassTest extends TestCase $compilerPass->process($container); $def1 = $container->getDefinition('debug.security.voter.voter1'); - $this->assertEquals(array('voter1', null, 0), $def1->getDecoratedService(), 'voter1: wrong return from getDecoratedService'); - $this->assertEquals(new Reference('debug.security.voter.voter1.inner'), $def1->getArgument(0), 'voter1: wrong decorator argument'); + $this->assertNull($def1->getDecoratedService(), 'voter1: should not be decorated'); + $this->assertEquals(new Reference('voter1'), $def1->getArgument(0), 'voter1: wrong argument'); $def2 = $container->getDefinition('debug.security.voter.voter2'); - $this->assertEquals(array('voter2', null, 0), $def2->getDecoratedService(), 'voter2: wrong return from getDecoratedService'); - $this->assertEquals(new Reference('debug.security.voter.voter2.inner'), $def2->getArgument(0), 'voter2: wrong decorator argument'); + $this->assertNull($def2->getDecoratedService(), 'voter2: should not be decorated'); + $this->assertEquals(new Reference('voter2'), $def2->getArgument(0), 'voter2: wrong argument'); $voters = $container->findTaggedServiceIds('security.voter'); $this->assertCount(2, $voters, 'Incorrect count of voters'); } - /** - * Test that voters are not decorated if the application is not in debug mode. - */ - public function testThatVotersAreNotDecoratedWithoutDebugMode(): void + public function testThatVotersAreNotTraceableWithoutDebugMode(): void { $container = new ContainerBuilder(); $container->setParameter('kernel.debug', false); @@ -130,8 +124,8 @@ class AddSecurityVotersPassTest extends TestCase $compilerPass = new AddSecurityVotersPass(); $compilerPass->process($container); - $this->assertFalse($container->has('debug.security.voter.voter1'), 'voter1 should not be decorated'); - $this->assertFalse($container->has('debug.security.voter.voter2'), 'voter2 should not be decorated'); + $this->assertFalse($container->has('debug.security.voter.voter1'), 'voter1 should not be traced'); + $this->assertFalse($container->has('debug.security.voter.voter2'), 'voter2 should not be traced'); } /** From 3c936f447b2b618d2018d274de6a9bcd057b64bc Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 1 Jan 2019 14:11:42 +0100 Subject: [PATCH 10/19] [VarExporter] fix exporting array indexes --- src/Symfony/Component/VarExporter/Internal/Exporter.php | 2 +- .../Tests/Fixtures/partially-indexed-array.php | 8 ++++++++ .../Component/VarExporter/Tests/VarExporterTest.php | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/Symfony/Component/VarExporter/Tests/Fixtures/partially-indexed-array.php diff --git a/src/Symfony/Component/VarExporter/Internal/Exporter.php b/src/Symfony/Component/VarExporter/Internal/Exporter.php index bbb409e194..38a8e25088 100644 --- a/src/Symfony/Component/VarExporter/Internal/Exporter.php +++ b/src/Symfony/Component/VarExporter/Internal/Exporter.php @@ -232,7 +232,7 @@ class Exporter if (!\is_int($k) || 1 !== $k - $j) { $code .= self::export($k, $subIndent).' => '; } - if (\is_int($k)) { + if (\is_int($k) && $k > $j) { $j = $k; } $code .= self::export($v, $subIndent).",\n"; diff --git a/src/Symfony/Component/VarExporter/Tests/Fixtures/partially-indexed-array.php b/src/Symfony/Component/VarExporter/Tests/Fixtures/partially-indexed-array.php new file mode 100644 index 0000000000..647aa7e80f --- /dev/null +++ b/src/Symfony/Component/VarExporter/Tests/Fixtures/partially-indexed-array.php @@ -0,0 +1,8 @@ + true, + 1 => true, + 2 => true, + true, +]; diff --git a/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php b/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php index 2d6c32a52e..c34a7e4fb7 100644 --- a/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php +++ b/src/Symfony/Component/VarExporter/Tests/VarExporterTest.php @@ -112,6 +112,7 @@ class VarExporterTest extends TestCase yield array('bool', true, true); yield array('simple-array', array(123, array('abc')), true); + yield array('partially-indexed-array', array(5 => true, 1 => true, 2 => true, 6 => true), true); yield array('datetime', \DateTime::createFromFormat('U', 0)); $value = new \ArrayObject(); From 6c895b9757472132e9d9d4177bc6af50c77ffea3 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 1 Jan 2019 14:42:07 +0100 Subject: [PATCH 11/19] update year in license files --- LICENSE | 2 +- src/Symfony/Bridge/Doctrine/LICENSE | 2 +- src/Symfony/Bridge/Monolog/LICENSE | 2 +- src/Symfony/Bridge/PhpUnit/LICENSE | 2 +- src/Symfony/Bridge/ProxyManager/LICENSE | 2 +- src/Symfony/Bridge/Twig/LICENSE | 2 +- src/Symfony/Bundle/DebugBundle/LICENSE | 2 +- src/Symfony/Bundle/FrameworkBundle/LICENSE | 2 +- src/Symfony/Bundle/SecurityBundle/LICENSE | 2 +- src/Symfony/Bundle/TwigBundle/LICENSE | 2 +- src/Symfony/Bundle/WebProfilerBundle/LICENSE | 2 +- src/Symfony/Bundle/WebServerBundle/LICENSE | 2 +- src/Symfony/Component/Asset/LICENSE | 2 +- src/Symfony/Component/BrowserKit/LICENSE | 2 +- src/Symfony/Component/Cache/LICENSE | 2 +- src/Symfony/Component/ClassLoader/LICENSE | 2 +- src/Symfony/Component/Config/LICENSE | 2 +- src/Symfony/Component/Console/LICENSE | 2 +- src/Symfony/Component/CssSelector/LICENSE | 2 +- src/Symfony/Component/Debug/LICENSE | 2 +- src/Symfony/Component/DependencyInjection/LICENSE | 2 +- src/Symfony/Component/DomCrawler/LICENSE | 2 +- src/Symfony/Component/Dotenv/LICENSE | 2 +- src/Symfony/Component/EventDispatcher/LICENSE | 2 +- src/Symfony/Component/ExpressionLanguage/LICENSE | 2 +- src/Symfony/Component/Filesystem/LICENSE | 2 +- src/Symfony/Component/Finder/LICENSE | 2 +- src/Symfony/Component/Form/LICENSE | 2 +- src/Symfony/Component/HttpFoundation/LICENSE | 2 +- src/Symfony/Component/HttpKernel/LICENSE | 2 +- src/Symfony/Component/Inflector/LICENSE | 2 +- src/Symfony/Component/Intl/LICENSE | 2 +- src/Symfony/Component/Ldap/LICENSE | 2 +- src/Symfony/Component/Lock/LICENSE | 2 +- src/Symfony/Component/OptionsResolver/LICENSE | 2 +- src/Symfony/Component/Process/LICENSE | 2 +- src/Symfony/Component/PropertyAccess/LICENSE | 2 +- src/Symfony/Component/PropertyInfo/LICENSE | 2 +- src/Symfony/Component/Routing/LICENSE | 2 +- src/Symfony/Component/Security/Core/LICENSE | 2 +- src/Symfony/Component/Security/Csrf/LICENSE | 2 +- src/Symfony/Component/Security/Guard/LICENSE | 2 +- src/Symfony/Component/Security/Http/LICENSE | 2 +- src/Symfony/Component/Security/LICENSE | 2 +- src/Symfony/Component/Serializer/LICENSE | 2 +- src/Symfony/Component/Stopwatch/LICENSE | 2 +- src/Symfony/Component/Templating/LICENSE | 2 +- src/Symfony/Component/Translation/LICENSE | 2 +- src/Symfony/Component/Validator/LICENSE | 2 +- src/Symfony/Component/VarDumper/LICENSE | 2 +- src/Symfony/Component/WebLink/LICENSE | 2 +- src/Symfony/Component/Workflow/LICENSE | 2 +- src/Symfony/Component/Yaml/LICENSE | 2 +- 53 files changed, 53 insertions(+), 53 deletions(-) diff --git a/LICENSE b/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bridge/Doctrine/LICENSE b/src/Symfony/Bridge/Doctrine/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bridge/Doctrine/LICENSE +++ b/src/Symfony/Bridge/Doctrine/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bridge/Monolog/LICENSE b/src/Symfony/Bridge/Monolog/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bridge/Monolog/LICENSE +++ b/src/Symfony/Bridge/Monolog/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bridge/PhpUnit/LICENSE b/src/Symfony/Bridge/PhpUnit/LICENSE index 15fc1c88d3..cf8b3ebe87 100644 --- a/src/Symfony/Bridge/PhpUnit/LICENSE +++ b/src/Symfony/Bridge/PhpUnit/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2018 Fabien Potencier +Copyright (c) 2014-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bridge/ProxyManager/LICENSE b/src/Symfony/Bridge/ProxyManager/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bridge/ProxyManager/LICENSE +++ b/src/Symfony/Bridge/ProxyManager/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bridge/Twig/LICENSE b/src/Symfony/Bridge/Twig/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bridge/Twig/LICENSE +++ b/src/Symfony/Bridge/Twig/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bundle/DebugBundle/LICENSE b/src/Symfony/Bundle/DebugBundle/LICENSE index 15fc1c88d3..cf8b3ebe87 100644 --- a/src/Symfony/Bundle/DebugBundle/LICENSE +++ b/src/Symfony/Bundle/DebugBundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2018 Fabien Potencier +Copyright (c) 2014-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bundle/FrameworkBundle/LICENSE b/src/Symfony/Bundle/FrameworkBundle/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bundle/FrameworkBundle/LICENSE +++ b/src/Symfony/Bundle/FrameworkBundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bundle/SecurityBundle/LICENSE b/src/Symfony/Bundle/SecurityBundle/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bundle/SecurityBundle/LICENSE +++ b/src/Symfony/Bundle/SecurityBundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bundle/TwigBundle/LICENSE b/src/Symfony/Bundle/TwigBundle/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bundle/TwigBundle/LICENSE +++ b/src/Symfony/Bundle/TwigBundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bundle/WebProfilerBundle/LICENSE b/src/Symfony/Bundle/WebProfilerBundle/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/LICENSE +++ b/src/Symfony/Bundle/WebProfilerBundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Bundle/WebServerBundle/LICENSE b/src/Symfony/Bundle/WebServerBundle/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Bundle/WebServerBundle/LICENSE +++ b/src/Symfony/Bundle/WebServerBundle/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Asset/LICENSE b/src/Symfony/Component/Asset/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Asset/LICENSE +++ b/src/Symfony/Component/Asset/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/BrowserKit/LICENSE b/src/Symfony/Component/BrowserKit/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/BrowserKit/LICENSE +++ b/src/Symfony/Component/BrowserKit/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Cache/LICENSE b/src/Symfony/Component/Cache/LICENSE index fcd3fa7697..3c464ca943 100644 --- a/src/Symfony/Component/Cache/LICENSE +++ b/src/Symfony/Component/Cache/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016-2018 Fabien Potencier +Copyright (c) 2016-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/ClassLoader/LICENSE b/src/Symfony/Component/ClassLoader/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/ClassLoader/LICENSE +++ b/src/Symfony/Component/ClassLoader/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Config/LICENSE b/src/Symfony/Component/Config/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Config/LICENSE +++ b/src/Symfony/Component/Config/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Console/LICENSE b/src/Symfony/Component/Console/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Console/LICENSE +++ b/src/Symfony/Component/Console/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/CssSelector/LICENSE b/src/Symfony/Component/CssSelector/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/CssSelector/LICENSE +++ b/src/Symfony/Component/CssSelector/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Debug/LICENSE b/src/Symfony/Component/Debug/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Debug/LICENSE +++ b/src/Symfony/Component/Debug/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/DependencyInjection/LICENSE b/src/Symfony/Component/DependencyInjection/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/DependencyInjection/LICENSE +++ b/src/Symfony/Component/DependencyInjection/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/DomCrawler/LICENSE b/src/Symfony/Component/DomCrawler/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/DomCrawler/LICENSE +++ b/src/Symfony/Component/DomCrawler/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Dotenv/LICENSE b/src/Symfony/Component/Dotenv/LICENSE index fcd3fa7697..3c464ca943 100644 --- a/src/Symfony/Component/Dotenv/LICENSE +++ b/src/Symfony/Component/Dotenv/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016-2018 Fabien Potencier +Copyright (c) 2016-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/EventDispatcher/LICENSE b/src/Symfony/Component/EventDispatcher/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/EventDispatcher/LICENSE +++ b/src/Symfony/Component/EventDispatcher/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/ExpressionLanguage/LICENSE b/src/Symfony/Component/ExpressionLanguage/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/ExpressionLanguage/LICENSE +++ b/src/Symfony/Component/ExpressionLanguage/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Filesystem/LICENSE b/src/Symfony/Component/Filesystem/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Filesystem/LICENSE +++ b/src/Symfony/Component/Filesystem/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Finder/LICENSE b/src/Symfony/Component/Finder/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Finder/LICENSE +++ b/src/Symfony/Component/Finder/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Form/LICENSE b/src/Symfony/Component/Form/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Form/LICENSE +++ b/src/Symfony/Component/Form/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/HttpFoundation/LICENSE b/src/Symfony/Component/HttpFoundation/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/HttpFoundation/LICENSE +++ b/src/Symfony/Component/HttpFoundation/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/HttpKernel/LICENSE b/src/Symfony/Component/HttpKernel/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/HttpKernel/LICENSE +++ b/src/Symfony/Component/HttpKernel/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Inflector/LICENSE b/src/Symfony/Component/Inflector/LICENSE index fbcca13d6a..f03153cc4a 100644 --- a/src/Symfony/Component/Inflector/LICENSE +++ b/src/Symfony/Component/Inflector/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2012-2018 Fabien Potencier +Copyright (c) 2012-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Intl/LICENSE b/src/Symfony/Component/Intl/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Intl/LICENSE +++ b/src/Symfony/Component/Intl/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Ldap/LICENSE b/src/Symfony/Component/Ldap/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Ldap/LICENSE +++ b/src/Symfony/Component/Ldap/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Lock/LICENSE b/src/Symfony/Component/Lock/LICENSE index fcd3fa7697..3c464ca943 100644 --- a/src/Symfony/Component/Lock/LICENSE +++ b/src/Symfony/Component/Lock/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016-2018 Fabien Potencier +Copyright (c) 2016-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/OptionsResolver/LICENSE b/src/Symfony/Component/OptionsResolver/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/OptionsResolver/LICENSE +++ b/src/Symfony/Component/OptionsResolver/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Process/LICENSE b/src/Symfony/Component/Process/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Process/LICENSE +++ b/src/Symfony/Component/Process/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/PropertyAccess/LICENSE b/src/Symfony/Component/PropertyAccess/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/PropertyAccess/LICENSE +++ b/src/Symfony/Component/PropertyAccess/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/PropertyInfo/LICENSE b/src/Symfony/Component/PropertyInfo/LICENSE index 24fa32c2e9..4cd8bdd300 100644 --- a/src/Symfony/Component/PropertyInfo/LICENSE +++ b/src/Symfony/Component/PropertyInfo/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2018 Fabien Potencier +Copyright (c) 2015-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Routing/LICENSE b/src/Symfony/Component/Routing/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Routing/LICENSE +++ b/src/Symfony/Component/Routing/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Security/Core/LICENSE b/src/Symfony/Component/Security/Core/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Security/Core/LICENSE +++ b/src/Symfony/Component/Security/Core/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Security/Csrf/LICENSE b/src/Symfony/Component/Security/Csrf/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Security/Csrf/LICENSE +++ b/src/Symfony/Component/Security/Csrf/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Security/Guard/LICENSE b/src/Symfony/Component/Security/Guard/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Security/Guard/LICENSE +++ b/src/Symfony/Component/Security/Guard/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Security/Http/LICENSE b/src/Symfony/Component/Security/Http/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Security/Http/LICENSE +++ b/src/Symfony/Component/Security/Http/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Security/LICENSE b/src/Symfony/Component/Security/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Security/LICENSE +++ b/src/Symfony/Component/Security/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Serializer/LICENSE b/src/Symfony/Component/Serializer/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Serializer/LICENSE +++ b/src/Symfony/Component/Serializer/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Stopwatch/LICENSE b/src/Symfony/Component/Stopwatch/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Stopwatch/LICENSE +++ b/src/Symfony/Component/Stopwatch/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Templating/LICENSE b/src/Symfony/Component/Templating/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Templating/LICENSE +++ b/src/Symfony/Component/Templating/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Translation/LICENSE b/src/Symfony/Component/Translation/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Translation/LICENSE +++ b/src/Symfony/Component/Translation/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Validator/LICENSE b/src/Symfony/Component/Validator/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Validator/LICENSE +++ b/src/Symfony/Component/Validator/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/VarDumper/LICENSE b/src/Symfony/Component/VarDumper/LICENSE index 15fc1c88d3..cf8b3ebe87 100644 --- a/src/Symfony/Component/VarDumper/LICENSE +++ b/src/Symfony/Component/VarDumper/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2018 Fabien Potencier +Copyright (c) 2014-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/WebLink/LICENSE b/src/Symfony/Component/WebLink/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/WebLink/LICENSE +++ b/src/Symfony/Component/WebLink/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Workflow/LICENSE b/src/Symfony/Component/Workflow/LICENSE index 15fc1c88d3..cf8b3ebe87 100644 --- a/src/Symfony/Component/Workflow/LICENSE +++ b/src/Symfony/Component/Workflow/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2018 Fabien Potencier +Copyright (c) 2014-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Component/Yaml/LICENSE b/src/Symfony/Component/Yaml/LICENSE index 21d7fb9e2f..a677f43763 100644 --- a/src/Symfony/Component/Yaml/LICENSE +++ b/src/Symfony/Component/Yaml/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2018 Fabien Potencier +Copyright (c) 2004-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 94bd28ebb001f178d7b87c4f2227a4d3aa40d444 Mon Sep 17 00:00:00 2001 From: Samuel NELA Date: Tue, 1 Jan 2019 15:10:43 +0100 Subject: [PATCH 12/19] [EventDispatcher] Fixed phpdoc on interface --- .../EventDispatcher/EventDispatcherInterface.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/EventDispatcher/EventDispatcherInterface.php b/src/Symfony/Component/EventDispatcher/EventDispatcherInterface.php index 8a547da57a..bde753a12f 100644 --- a/src/Symfony/Component/EventDispatcher/EventDispatcherInterface.php +++ b/src/Symfony/Component/EventDispatcher/EventDispatcherInterface.php @@ -23,11 +23,11 @@ interface EventDispatcherInterface /** * Dispatches an event to all registered listeners. * - * @param string $eventName The name of the event to dispatch. The name of - * the event is the name of the method that is - * invoked on listeners. - * @param Event $event The event to pass to the event handlers/listeners - * If not supplied, an empty Event instance is created + * @param string $eventName The name of the event to dispatch. The name of + * the event is the name of the method that is + * invoked on listeners. + * @param Event|null $event The event to pass to the event handlers/listeners + * If not supplied, an empty Event instance is created * * @return Event */ @@ -64,7 +64,7 @@ interface EventDispatcherInterface /** * Gets the listeners of a specific event or all listeners sorted by descending priority. * - * @param string $eventName The name of the event + * @param string|null $eventName The name of the event * * @return array The event listeners for the specified event, or all event listeners by event name */ @@ -85,7 +85,7 @@ interface EventDispatcherInterface /** * Checks whether an event has any registered listeners. * - * @param string $eventName The name of the event + * @param string|null $eventName The name of the event * * @return bool true if the specified event has any listeners, false otherwise */ From dc568c0ba116f81b78fc99d002fd007bd81987d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Sun, 30 Dec 2018 14:11:46 +0100 Subject: [PATCH 13/19] [Lock] Pedantic improvements for lock --- src/Symfony/Component/Lock/StoreInterface.php | 2 +- .../Lock/Tests/Store/BlockingStoreTestTrait.php | 2 +- .../Lock/Tests/Store/ExpiringStoreTestTrait.php | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/Lock/StoreInterface.php b/src/Symfony/Component/Lock/StoreInterface.php index 985c4476d7..a45c93aec9 100644 --- a/src/Symfony/Component/Lock/StoreInterface.php +++ b/src/Symfony/Component/Lock/StoreInterface.php @@ -43,7 +43,7 @@ interface StoreInterface * * If the store does not support this feature it should throw a NotSupportedException. * - * @param float $ttl amount of second to keep the lock in the store + * @param float $ttl amount of seconds to keep the lock in the store * * @throws LockConflictedException * @throws NotSupportedException diff --git a/src/Symfony/Component/Lock/Tests/Store/BlockingStoreTestTrait.php b/src/Symfony/Component/Lock/Tests/Store/BlockingStoreTestTrait.php index c04c01d64f..67ac4e1036 100644 --- a/src/Symfony/Component/Lock/Tests/Store/BlockingStoreTestTrait.php +++ b/src/Symfony/Component/Lock/Tests/Store/BlockingStoreTestTrait.php @@ -36,7 +36,7 @@ trait BlockingStoreTestTrait */ public function testBlockingLocks() { - // Amount a microsecond used to order async actions + // Amount of microseconds we should wait without slowing things down too much $clockDelay = 50000; if (\PHP_VERSION_ID < 50600 || \defined('HHVM_VERSION_ID')) { diff --git a/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php b/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php index 10b1327387..9a0c5bd260 100644 --- a/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php +++ b/src/Symfony/Component/Lock/Tests/Store/ExpiringStoreTestTrait.php @@ -20,7 +20,9 @@ use Symfony\Component\Lock\StoreInterface; trait ExpiringStoreTestTrait { /** - * Amount a microsecond used to order async actions. + * Amount of microseconds used as a delay to test expiration. Should be + * small enough not to slow the test suite too much, and high enough not to + * fail because of race conditions. * * @return int */ @@ -34,7 +36,7 @@ trait ExpiringStoreTestTrait /** * Tests the store automatically delete the key when it expire. * - * This test is time sensible: the $clockDelay could be adjust. + * This test is time-sensitive: the $clockDelay could be adjusted. */ public function testExpiration() { @@ -71,14 +73,13 @@ trait ExpiringStoreTestTrait /** * Tests the refresh can push the limits to the expiration. * - * This test is time sensible: the $clockDelay could be adjust. + * This test is time-sensitive: the $clockDelay could be adjusted. */ public function testRefreshLock() { - // Amount a microsecond used to order async actions + // Amount of microseconds we should wait without slowing things down too much $clockDelay = $this->getClockDelay(); - // Amount a microsecond used to order async actions $key = new Key(uniqid(__METHOD__, true)); /** @var StoreInterface $store */ From b40801a492cc5516ff0143b3e6978b1935326f24 Mon Sep 17 00:00:00 2001 From: Emanuele Iannone Date: Sun, 23 Dec 2018 15:44:15 +0100 Subject: [PATCH 14/19] Fix erasing cookies issue Prevent replacing existing cookies when starting or regenerating session on PHP < 7.3 with 'cookie_samesite' option. See issue https://github.com/symfony/symfony/issues/29675 --- .../HttpFoundation/Session/Storage/NativeSessionStorage.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php b/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php index 156a0d4555..232eb64cfd 100644 --- a/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php +++ b/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php @@ -153,7 +153,7 @@ class NativeSessionStorage implements SessionStorageInterface if (null !== $this->emulateSameSite) { $originalCookie = SessionUtils::popSessionCookie(session_name(), session_id()); if (null !== $originalCookie) { - header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite)); + header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite), false); } } @@ -225,7 +225,7 @@ class NativeSessionStorage implements SessionStorageInterface if (null !== $this->emulateSameSite) { $originalCookie = SessionUtils::popSessionCookie(session_name(), session_id()); if (null !== $originalCookie) { - header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite)); + header(sprintf('%s; SameSite=%s', $originalCookie, $this->emulateSameSite), false); } } From f06e6b46ef3465abf5735c2c526e8524b5ca9319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABll=20Roussel?= <4671739+Mx-Glitter@users.noreply.github.com> Date: Mon, 31 Dec 2018 17:40:08 +0100 Subject: [PATCH 15/19] Replace slave and master by replica and primary Remove racially charged terms. --- .../Tests/OptionsResolverTest.php | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php index d996fdd264..213c471a74 100644 --- a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php +++ b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php @@ -2181,9 +2181,9 @@ class OptionsResolverTest extends TestCase ->setRequired(array('dbname', 'host')) ->setDefaults(array( 'port' => 3306, - 'slaves' => function (OptionsResolver $resolver) { + 'replicas' => function (OptionsResolver $resolver) { $resolver->setDefaults(array( - 'host' => 'slave1', + 'host' => 'replica1', 'port' => 3306, )); }, @@ -2196,14 +2196,14 @@ class OptionsResolverTest extends TestCase 'dbname' => 'test', 'host' => 'localhost', 'port' => null, - 'slaves' => array('host' => 'slave2'), + 'replicas' => array('host' => 'replica2'), ), )); $expectedOptions = array( 'name' => 'custom', 'database' => array( 'port' => null, - 'slaves' => array('port' => 3306, 'host' => 'slave2'), + 'replicas' => array('port' => 3306, 'host' => 'replica2'), 'dbname' => 'test', 'host' => 'localhost', ), @@ -2332,7 +2332,7 @@ class OptionsResolverTest extends TestCase public function testFailsIfCyclicDependencyBetweenSameNestedOption() { $this->resolver->setDefault('database', function (OptionsResolver $resolver, Options $parent) { - $resolver->setDefault('slaves', $parent['database']); + $resolver->setDefault('replicas', $parent['database']); }); $this->resolver->resolve(); } @@ -2375,9 +2375,9 @@ class OptionsResolverTest extends TestCase public function testFailsIfCyclicDependencyBetweenNestedOptions() { $this->resolver->setDefault('database', function (OptionsResolver $resolver, Options $parent) { - $resolver->setDefault('host', $parent['slave']['host']); + $resolver->setDefault('host', $parent['replica']['host']); }); - $this->resolver->setDefault('slave', function (OptionsResolver $resolver, Options $parent) { + $this->resolver->setDefault('replica', function (OptionsResolver $resolver, Options $parent) { $resolver->setDefault('host', $parent['database']['host']); }); $this->resolver->resolve(); @@ -2418,12 +2418,12 @@ class OptionsResolverTest extends TestCase 'ip' => null, 'database' => function (OptionsResolver $resolver, Options $parent) { $resolver->setDefault('host', $parent['ip']); - $resolver->setDefault('master_slave', function (OptionsResolver $resolver, Options $parent) { + $resolver->setDefault('primary_replica', function (OptionsResolver $resolver, Options $parent) { $resolver->setDefault('host', $parent['host']); }); }, - 'secondary_slave' => function (Options $options) { - return $options['database']['master_slave']['host']; + 'secondary_replica' => function (Options $options) { + return $options['database']['primary_replica']['host']; }, )); $actualOptions = $this->resolver->resolve(array('ip' => '127.0.0.1')); @@ -2431,9 +2431,9 @@ class OptionsResolverTest extends TestCase 'ip' => '127.0.0.1', 'database' => array( 'host' => '127.0.0.1', - 'master_slave' => array('host' => '127.0.0.1'), + 'primary_replica' => array('host' => '127.0.0.1'), ), - 'secondary_slave' => '127.0.0.1', + 'secondary_replica' => '127.0.0.1', ); $this->assertSame($expectedOptions, $actualOptions); } From 68ea3f1a64b5b41cc3b17609777978baba07492b Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Fri, 28 Dec 2018 10:13:17 +0100 Subject: [PATCH 16/19] access the container getting it from the kernel --- .../Bundle/FrameworkBundle/Command/AssetsInstallCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php index 71671774fc..b90c810006 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php @@ -94,7 +94,7 @@ EOT $targetArg = rtrim($input->getArgument('target'), '/'); if (!$targetArg) { - $targetArg = $this->getPublicDirectory($this->getContainer()); + $targetArg = $this->getPublicDirectory($kernel->getContainer()); } if (!is_dir($targetArg)) { From a95a8e418bedd9b9e747885cc846764c53111b51 Mon Sep 17 00:00:00 2001 From: Lars Moelleken Date: Sat, 29 Dec 2018 16:36:40 +0100 Subject: [PATCH 17/19] \"ParserTest->getParserTestData()\" -> only some more tests --- src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php b/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php index 53b35a9547..024be8101e 100644 --- a/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php +++ b/src/Symfony/Component/CssSelector/Tests/Parser/ParserTest.php @@ -120,6 +120,9 @@ class ParserTest extends TestCase array('a[name]', array('Attribute[Element[a][name]]')), array("a[ name\t]", array('Attribute[Element[a][name]]')), array('a [name]', array('CombinedSelector[Element[a] Attribute[Element[*][name]]]')), + array('[name="foo"]', array("Attribute[Element[*][name = 'foo']]")), + array("[name='foo[1]']", array("Attribute[Element[*][name = 'foo[1]']]")), + array("[name='foo[0][bar]']", array("Attribute[Element[*][name = 'foo[0][bar]']]")), array('a[rel="include"]', array("Attribute[Element[a][rel = 'include']]")), array('a[rel = include]', array("Attribute[Element[a][rel = 'include']]")), array("a[hreflang |= 'en']", array("Attribute[Element[a][hreflang |= 'en']]")), From f8be46be0eccf8bcd62487988faff79a051fa534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Wed, 2 Jan 2019 22:24:08 +0100 Subject: [PATCH 18/19] Fix: Adjust DocBlock --- src/Symfony/Component/Process/ExecutableFinder.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/Process/ExecutableFinder.php b/src/Symfony/Component/Process/ExecutableFinder.php index ad2c76ab60..90cafa34e3 100644 --- a/src/Symfony/Component/Process/ExecutableFinder.php +++ b/src/Symfony/Component/Process/ExecutableFinder.php @@ -42,9 +42,9 @@ class ExecutableFinder /** * Finds an executable by name. * - * @param string $name The executable name (without the extension) - * @param string $default The default to return if no executable is found - * @param array $extraDirs Additional dirs to check into + * @param string $name The executable name (without the extension) + * @param string|null $default The default to return if no executable is found + * @param array $extraDirs Additional dirs to check into * * @return string|null The executable path or default value */ From 36110b1e951663487107686864f12e886e031f31 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Thu, 3 Jan 2019 10:09:06 +0100 Subject: [PATCH 19/19] update years in license files --- src/Symfony/Component/VarExporter/LICENSE | 2 +- src/Symfony/Contracts/LICENSE | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/VarExporter/LICENSE b/src/Symfony/Component/VarExporter/LICENSE index ad399a798d..3f853aaf35 100644 --- a/src/Symfony/Component/VarExporter/LICENSE +++ b/src/Symfony/Component/VarExporter/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018 Fabien Potencier +Copyright (c) 2018-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/Symfony/Contracts/LICENSE b/src/Symfony/Contracts/LICENSE index ad399a798d..3f853aaf35 100644 --- a/src/Symfony/Contracts/LICENSE +++ b/src/Symfony/Contracts/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018 Fabien Potencier +Copyright (c) 2018-2019 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal