From 813572710229fdd0cb5c63dd255d16cc6c7e2ef0 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 24 Dec 2014 16:04:14 +0100 Subject: [PATCH 1/7] [SecurityBundle] avoid unneeded work --- .../DependencyInjection/SecurityExtension.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index 04978177fc..d6e0bad243 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -567,6 +567,10 @@ class SecurityExtension extends Extension private function createRequestMatcher($container, $path = null, $host = null, $methods = array(), $ip = null, array $attributes = array()) { + if ($methods) { + $methods = array_map('strtoupper', (array) $methods); + } + $serialized = serialize(array($path, $host, $methods, $ip, $attributes)); $id = 'security.request_matcher.'.md5($serialized).sha1($serialized); @@ -574,10 +578,6 @@ class SecurityExtension extends Extension return $this->requestMatchers[$id]; } - if ($methods) { - $methods = array_map('strtoupper', (array) $methods); - } - // only add arguments that are necessary $arguments = array($path, $host, $methods, $ip, $attributes); while (count($arguments) > 0 && !end($arguments)) { From fa36b981411b2b92e0cfd179e04e69696b670d2d Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 24 Dec 2014 16:07:20 +0100 Subject: [PATCH 2/7] [CssSelector] added the license of the Python library we ported to PHP --- .../Component/CssSelector/CssSelector.php | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/Symfony/Component/CssSelector/CssSelector.php b/src/Symfony/Component/CssSelector/CssSelector.php index 58d8466245..103c60d9e6 100644 --- a/src/Symfony/Component/CssSelector/CssSelector.php +++ b/src/Symfony/Component/CssSelector/CssSelector.php @@ -27,6 +27,39 @@ use Symfony\Component\CssSelector\XPath\Translator; * This component is a port of the Python cssselector library, * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect. * + * Copyright (c) 2007-2012 Ian Bicking and contributors. See AUTHORS + * for more details. + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. Neither the name of Ian Bicking nor the names of its contributors may + * be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IAN BICKING OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * * @author Fabien Potencier * * @api From 965b4ddc4210fc0f0f4d58a7a0974bf3a325101b Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 25 Dec 2014 12:07:27 +0100 Subject: [PATCH 3/7] [FrameworkBundle] fix http-foundation requirement --- src/Symfony/Bundle/FrameworkBundle/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index b333609e3d..7f703550c7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -20,7 +20,7 @@ "symfony/dependency-injection" : "~2.3,>=2.3.3", "symfony/config" : "~2.4", "symfony/event-dispatcher": "~2.5", - "symfony/http-foundation": "~2.4,>=2.4.9", + "symfony/http-foundation": "~2.4.9|~2.5,>=2.5.4", "symfony/http-kernel": "~2.5,>=2.5.7", "symfony/filesystem": "~2.3", "symfony/routing": "~2.2", From 31012023338614fe38a4e0b3ae1dcdf613518b88 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 25 Dec 2014 09:15:16 +0100 Subject: [PATCH 4/7] [Filesystem] restore ability to create broken symlinks --- .../FrameworkBundle/Command/AssetsInstallCommand.php | 6 ++++++ src/Symfony/Component/Filesystem/Filesystem.php | 8 +------- src/Symfony/Component/Filesystem/Tests/FilesystemTest.php | 7 +++++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php b/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php index d0f60c8426..92a84affd6 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php +++ b/src/Symfony/Bundle/FrameworkBundle/Command/AssetsInstallCommand.php @@ -106,6 +106,9 @@ EOT try { $filesystem->symlink($relativeOriginDir, $targetDir); + if (!file_exists($targetDir)) { + throw new IOException('Symbolic link is broken'); + } $output->writeln('The assets were installed using symbolic links.'); } catch (IOException $e) { if (!$input->getOption('relative')) { @@ -116,6 +119,9 @@ EOT // try again without the relative option try { $filesystem->symlink($originDir, $targetDir); + if (!file_exists($targetDir)) { + throw new IOException('Symbolic link is broken'); + } $output->writeln('It looks like your system doesn\'t support relative symbolic links, so the assets were installed by using absolute symbolic links.'); } catch (IOException $e) { $this->hardCopy($originDir, $targetDir); diff --git a/src/Symfony/Component/Filesystem/Filesystem.php b/src/Symfony/Component/Filesystem/Filesystem.php index d2d2c94d9e..0245b8c265 100644 --- a/src/Symfony/Component/Filesystem/Filesystem.php +++ b/src/Symfony/Component/Filesystem/Filesystem.php @@ -286,9 +286,7 @@ class Filesystem */ public function symlink($originDir, $targetDir, $copyOnWindows = false) { - $onWindows = strtoupper(substr(php_uname('s'), 0, 3)) === 'WIN'; - - if ($onWindows && $copyOnWindows) { + if (defined('PHP_WINDOWS_VERSION_MAJOR') && $copyOnWindows) { $this->mirror($originDir, $targetDir); return; @@ -315,10 +313,6 @@ class Filesystem } throw new IOException(sprintf('Failed to create symbolic link from "%s" to "%s".', $originDir, $targetDir), 0, null, $targetDir); } - - if (!file_exists($targetDir)) { - throw new IOException(sprintf('Symbolic link "%s" is created but appears to be broken.', $targetDir), 0, null, $targetDir); - } } } diff --git a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php index 947c636311..4c49f1ee8c 100644 --- a/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php +++ b/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php @@ -686,11 +686,14 @@ class FilesystemTest extends FilesystemTestCase $file = $this->workspace.DIRECTORY_SEPARATOR.'file'; $link = $this->workspace.DIRECTORY_SEPARATOR.'link'; - touch($file); - + // $file does not exists right now: creating "broken" links is a wanted feature $this->filesystem->symlink($file, $link); $this->assertTrue(is_link($link)); + + // Create the linked file AFTER creating the link + touch($file); + $this->assertEquals($file, readlink($link)); } From d9053d9b558ddf62199f655c2aa4507d144efb3b Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 25 Dec 2014 23:41:41 +0100 Subject: [PATCH 5/7] [TwigBridge] fix form requirement --- src/Symfony/Bridge/Twig/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index e4314931b5..558d41cee2 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -21,7 +21,7 @@ }, "require-dev": { "symfony/finder": "~2.3", - "symfony/form": "~2.3,>=2.3.5", + "symfony/form": "~2.3.5", "symfony/http-kernel": "~2.3", "symfony/locale": "~2.0,>=2.0.5", "symfony/routing": "~2.2", From 23c603a7cc144aa86454ebd79962ecb9697f87c5 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 25 Dec 2014 23:57:44 +0100 Subject: [PATCH 6/7] [FrameworkBundle] fix expression-language requirement --- src/Symfony/Bundle/FrameworkBundle/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index b2f16f4fed..36ff4bc0fc 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -41,7 +41,7 @@ "symfony/security": "~2.6", "symfony/form": "~2.6", "symfony/class-loader": "~2.1", - "symfony/expression-language": "~2.4", + "symfony/expression-language": "~2.6", "symfony/process": "~2.0,>=2.0.5", "symfony/validator": "~2.5", "symfony/yaml": "~2.0,>=2.0.5" From abbd2707eff88fba2b8225d9b8cdf4a01203fac7 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 25 Dec 2014 23:10:51 +0100 Subject: [PATCH 7/7] [FrameworkBundle] fix browserkit requirement --- src/Symfony/Bridge/Twig/composer.json | 2 +- src/Symfony/Bundle/FrameworkBundle/composer.json | 2 +- src/Symfony/Component/HttpKernel/composer.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index fce7130327..d4bad46029 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -22,7 +22,7 @@ }, "require-dev": { "symfony/finder": "~2.3", - "symfony/form": "2.5.*,>=2.5.2", + "symfony/form": "~2.5.2", "symfony/http-kernel": "~2.3", "symfony/locale": "~2.0,>=2.0.5", "symfony/routing": "~2.2", diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 7f703550c7..e6a3b644a8 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -32,7 +32,7 @@ "doctrine/annotations": "~1.0" }, "require-dev": { - "symfony/browser-kit": "~2.3", + "symfony/browser-kit": "~2.4", "symfony/console": "~2.4,>=2.4.8", "symfony/css-selector": "~2.0,>=2.0.5", "symfony/dom-crawler": "~2.0,>=2.0.5", diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index bb4f655540..679d5d2ce4 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=5.3.3", - "symfony/event-dispatcher": "2.5.*,>2.5.8|~2.6,>2.6.1", + "symfony/event-dispatcher": "~2.5.9|~2.6,>=2.6.2", "symfony/http-foundation": "~2.5", "symfony/debug": "~2.5", "psr/log": "~1.0"