From 90a48a9fe678a0f801a1bb3d27fe1834d05e248f Mon Sep 17 00:00:00 2001 From: webchick <webchick@24967.no-reply.drupal.org> Date: Thu, 30 Aug 2012 15:36:24 -0700 Subject: [PATCH] Issue #1764342 by Rob Loach: Update Symfony and Doctrine to RC2. --- core/composer.lock | 16 +- core/vendor/.gitignore | 1 + core/vendor/autoload.php | 22 +- core/vendor/composer/ClassLoader.php | 2 + core/vendor/composer/autoload_namespaces.php | 2 +- core/vendor/composer/autoload_real.php | 29 ++ core/vendor/composer/installed.json | 262 +++++++++--------- core/vendor/doctrine/common/composer.json | 2 +- .../Common/Annotations/AnnotationReader.php | 3 +- .../Common/Collections/ArrayCollection.php | 10 - .../Doctrine/Common/Collections/Criteria.php | 69 +++++ .../Common/Collections/Selectable.php | 7 - .../common/lib/Doctrine/Common/Version.php | 2 +- .../Common/Collections/CollectionTest.php | 2 +- .../Tests/Common/Collections/CriteriaTest.php | 48 +++- .../ClassLoader/Tests/ClassLoaderTest.php | 51 ++++ .../Tests/ClassMapGeneratorTest.php | 44 +++ .../Tests/UniversalClassLoaderTest.php | 26 ++ .../Component/ClassLoader/composer.json | 1 + .../DependencyInjection/Dumper/PhpDumper.php | 8 +- .../Loader/XmlFileLoader.php | 32 ++- .../Tests/Dumper/PhpDumperTest.php | 14 + .../Tests/Fixtures/xml/withdoctype.xml | 3 + .../Tests/Loader/XmlFileLoaderTest.php | 12 + .../DependencyInjection/composer.json | 1 + .../EventDispatcher/GenericEvent.php | 12 +- .../Tests/GenericEventTest.php | 9 + .../Component/EventDispatcher/composer.json | 1 + .../Component/HttpFoundation/HeaderBag.php | 2 +- .../Component/HttpFoundation/JsonResponse.php | 8 +- .../Storage/Handler/MongoDbSessionHandler.php | 2 +- .../Session/Storage/NativeSessionStorage.php | 2 +- .../HttpFoundation/Tests/HeaderBagTest.php | 8 + .../Handler/NativeFileSessionHandlerTest.php | 5 +- .../Component/HttpFoundation/composer.json | 1 + .../Symfony/Component/HttpKernel/Kernel.php | 4 +- .../Controller/ControllerResolverTest.php | 14 +- .../Component/HttpKernel/Tests/KernelTest.php | 10 +- .../Component/HttpKernel/composer.json | 1 + .../Component/Routing/CompiledRoute.php | 55 +--- .../Generator/Dumper/PhpGeneratorDumper.php | 4 +- .../Routing/Loader/XmlFileLoader.php | 31 ++- .../Matcher/Dumper/PhpMatcherDumper.php | 8 +- .../Component/Routing/RouteCompiler.php | 1 - .../Routing/Tests/CompiledRouteTest.php | 27 +- .../Routing/Tests/Fixtures/withdoctype.xml | 3 + .../Tests/Loader/XmlFileLoaderTest.php | 10 + .../Symfony/Component/Routing/composer.json | 1 + .../yaml/Symfony/Component/Yaml/Dumper.php | 19 +- .../yaml/Symfony/Component/Yaml/Yaml.php | 4 +- .../yaml/Symfony/Component/Yaml/composer.json | 1 + 51 files changed, 604 insertions(+), 308 deletions(-) create mode 100644 core/vendor/composer/autoload_real.php create mode 100644 core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/withdoctype.xml create mode 100644 core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/withdoctype.xml diff --git a/core/composer.lock b/core/composer.lock index 5469ca84e37e..1fc2aee00300 100644 --- a/core/composer.lock +++ b/core/composer.lock @@ -3,35 +3,35 @@ "packages": [ { "package": "doctrine/common", - "version": "2.3.0-RC1" + "version": "2.3.0-RC2" }, { "package": "symfony/class-loader", - "version": "v2.1.0-RC1" + "version": "v2.1.0-RC2" }, { "package": "symfony/dependency-injection", - "version": "v2.1.0-RC1" + "version": "v2.1.0-RC2" }, { "package": "symfony/event-dispatcher", - "version": "v2.1.0-RC1" + "version": "v2.1.0-RC2" }, { "package": "symfony/http-foundation", - "version": "v2.1.0-RC1" + "version": "v2.1.0-RC2" }, { "package": "symfony/http-kernel", - "version": "v2.1.0-RC1" + "version": "v2.1.0-RC2" }, { "package": "symfony/routing", - "version": "v2.1.0-RC1" + "version": "v2.1.0-RC2" }, { "package": "symfony/yaml", - "version": "v2.1.0-RC1" + "version": "v2.1.0-RC2" }, { "package": "twig/twig", diff --git a/core/vendor/.gitignore b/core/vendor/.gitignore index eacfa776e87e..1475637e6308 100644 --- a/core/vendor/.gitignore +++ b/core/vendor/.gitignore @@ -1,3 +1,4 @@ # SimpleTest breaks with the following files, so avoid adding them. symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php symfony/class-loader/Symfony/Component/ClassLoader/Tests/Fixtures/php5.4/traits.php +symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services11.php diff --git a/core/vendor/autoload.php b/core/vendor/autoload.php index 85087dda3e7f..004ba3a81d18 100644 --- a/core/vendor/autoload.php +++ b/core/vendor/autoload.php @@ -1,25 +1,7 @@ <?php // autoload.php generated by Composer -if (!class_exists('Composer\\Autoload\\ClassLoader', false)) { - require __DIR__ . '/composer' . '/ClassLoader.php'; -} -return call_user_func(function() { - $loader = new \Composer\Autoload\ClassLoader(); - $composerDir = __DIR__ . '/composer'; +require_once __DIR__ . '/composer' . '/autoload_real.php'; - $map = require $composerDir . '/autoload_namespaces.php'; - foreach ($map as $namespace => $path) { - $loader->add($namespace, $path); - } - - $classMap = require $composerDir . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - - $loader->register(); - - return $loader; -}); +return ComposerAutoloaderInit::getLoader(); diff --git a/core/vendor/composer/ClassLoader.php b/core/vendor/composer/ClassLoader.php index d1c2cd57f285..00623e36d798 100644 --- a/core/vendor/composer/ClassLoader.php +++ b/core/vendor/composer/ClassLoader.php @@ -201,5 +201,7 @@ public function findFile($class) if ($this->useIncludePath && $file = stream_resolve_include_path($classPath)) { return $file; } + + $this->classMap[$class] = false; } } diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php index f3cf2d6ae3d9..156e974ec90e 100644 --- a/core/vendor/composer/autoload_namespaces.php +++ b/core/vendor/composer/autoload_namespaces.php @@ -1,6 +1,6 @@ <?php -// autoload_namespace.php generated by Composer +// autoload_namespaces.php generated by Composer $vendorDir = dirname(__DIR__); $baseDir = dirname($vendorDir); diff --git a/core/vendor/composer/autoload_real.php b/core/vendor/composer/autoload_real.php new file mode 100644 index 000000000000..7d64f4989344 --- /dev/null +++ b/core/vendor/composer/autoload_real.php @@ -0,0 +1,29 @@ +<?php + +// autoload_real.php generated by Composer + +require __DIR__ . '/ClassLoader.php'; + +class ComposerAutoloaderInit +{ + public static function getLoader() + { + $loader = new \Composer\Autoload\ClassLoader(); + $vendorDir = dirname(__DIR__); + $baseDir = dirname($vendorDir); + + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->add($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + + $loader->register(); + + return $loader; + } +} diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json index 51054e45c323..171b1216f69d 100644 --- a/core/vendor/composer/installed.json +++ b/core/vendor/composer/installed.json @@ -3,7 +3,7 @@ "name": "twig/twig", "version": "v1.8.3", "version_normalized": "1.8.3.0", - "time": "2012-06-18 15:48:16", + "time": "2012-06-18 19:48:16", "source": { "type": "git", "url": "git://github.com/fabpot/Twig.git", @@ -55,19 +55,19 @@ }, { "name": "symfony/class-loader", - "version": "v2.1.0-RC1", - "version_normalized": "2.1.0.0-RC1", + "version": "v2.1.0-RC2", + "version_normalized": "2.1.0.0-RC2", "target-dir": "Symfony/Component/ClassLoader", - "time": "2012-07-15 17:13:51", + "time": "2012-08-27 15:51:49", "source": { "type": "git", "url": "https://github.com/symfony/ClassLoader", - "reference": "v2.1.0-RC1" + "reference": "v2.1.0-RC2" }, "dist": { "type": "zip", - "url": "https://github.com/symfony/ClassLoader/zipball/v2.1.0-RC1", - "reference": "v2.1.0-RC1", + "url": "https://github.com/symfony/ClassLoader/zipball/v2.1.0-RC2", + "reference": "v2.1.0-RC2", "shasum": "" }, "require": { @@ -110,19 +110,19 @@ }, { "name": "symfony/dependency-injection", - "version": "v2.1.0-RC1", - "version_normalized": "2.1.0.0-RC1", + "version": "v2.1.0-RC2", + "version_normalized": "2.1.0.0-RC2", "target-dir": "Symfony/Component/DependencyInjection", - "time": "2012-08-03 19:44:30", + "time": "2012-08-28 07:54:42", "source": { "type": "git", "url": "https://github.com/symfony/DependencyInjection", - "reference": "v2.1.0-RC1" + "reference": "v2.1.0-RC2" }, "dist": { "type": "zip", - "url": "https://github.com/symfony/DependencyInjection/zipball/v2.1.0-RC1", - "reference": "v2.1.0-RC1", + "url": "https://github.com/symfony/DependencyInjection/zipball/v2.1.0-RC2", + "reference": "v2.1.0-RC2", "shasum": "" }, "require": { @@ -133,8 +133,8 @@ "symfony/config": "2.1.*" }, "suggest": { - "symfony/yaml": "v2.1.0-RC1", - "symfony/config": "v2.1.0-RC1" + "symfony/yaml": "v2.1.0-RC2", + "symfony/config": "v2.1.0-RC2" }, "type": "library", "extra": { @@ -168,21 +168,97 @@ } } }, + { + "name": "doctrine/common", + "version": "2.3.0-RC2", + "version_normalized": "2.3.0.0-RC2", + "time": "2012-08-29 14:06:32", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common", + "reference": "2.3.0-RC2" + }, + "dist": { + "type": "zip", + "url": "https://github.com/doctrine/common/zipball/2.3.0-RC2", + "reference": "2.3.0-RC2", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "installation-source": "dist", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com", + "homepage": "http://www.jwage.com/", + "role": null + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com", + "homepage": null, + "role": null + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org", + "homepage": null, + "role": null + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de", + "homepage": null, + "role": null + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "http://jmsyst.com", + "role": "Developer of wrapped JMSSerializerBundle" + } + ], + "description": "Common Library for Doctrine projects", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "collections", + "spl", + "eventmanager", + "annotations", + "persistence" + ], + "autoload": { + "psr-0": { + "Doctrine\\Common": "lib/" + } + } + }, { "name": "symfony/http-foundation", - "version": "v2.1.0-RC1", - "version_normalized": "2.1.0.0-RC1", + "version": "v2.1.0-RC2", + "version_normalized": "2.1.0.0-RC2", "target-dir": "Symfony/Component/HttpFoundation", - "time": "2012-08-04 16:18:38", + "time": "2012-08-22 13:48:41", "source": { "type": "git", "url": "https://github.com/symfony/HttpFoundation", - "reference": "v2.1.0-RC1" + "reference": "v2.1.0-RC2" }, "dist": { "type": "zip", - "url": "https://github.com/symfony/HttpFoundation/zipball/v2.1.0-RC1", - "reference": "v2.1.0-RC1", + "url": "https://github.com/symfony/HttpFoundation/zipball/v2.1.0-RC2", + "reference": "v2.1.0-RC2", "shasum": "" }, "require": { @@ -223,19 +299,19 @@ }, { "name": "symfony/event-dispatcher", - "version": "v2.1.0-RC1", - "version_normalized": "2.1.0.0-RC1", + "version": "v2.1.0-RC2", + "version_normalized": "2.1.0.0-RC2", "target-dir": "Symfony/Component/EventDispatcher", - "time": "2012-07-20 06:18:14", + "time": "2012-08-22 13:48:41", "source": { "type": "git", "url": "https://github.com/symfony/EventDispatcher", - "reference": "v2.1.0-RC1" + "reference": "v2.1.0-RC2" }, "dist": { "type": "zip", - "url": "https://github.com/symfony/EventDispatcher/zipball/v2.1.0-RC1", - "reference": "v2.1.0-RC1", + "url": "https://github.com/symfony/EventDispatcher/zipball/v2.1.0-RC2", + "reference": "v2.1.0-RC2", "shasum": "" }, "require": { @@ -245,8 +321,8 @@ "symfony/dependency-injection": "2.1.*" }, "suggest": { - "symfony/dependency-injection": "v2.1.0-RC1", - "symfony/http-kernel": "v2.1.0-RC1" + "symfony/dependency-injection": "v2.1.0-RC2", + "symfony/http-kernel": "v2.1.0-RC2" }, "type": "library", "extra": { @@ -282,19 +358,19 @@ }, { "name": "symfony/http-kernel", - "version": "v2.1.0-RC1", - "version_normalized": "2.1.0.0-RC1", + "version": "v2.1.0-RC2", + "version_normalized": "2.1.0.0-RC2", "target-dir": "Symfony/Component/HttpKernel", - "time": "2012-08-04 16:32:21", + "time": "2012-08-28 08:00:18", "source": { "type": "git", "url": "https://github.com/symfony/HttpKernel", - "reference": "v2.1.0-RC1" + "reference": "v2.1.0-RC2" }, "dist": { "type": "zip", - "url": "https://github.com/symfony/HttpKernel/zipball/v2.1.0-RC1", - "reference": "v2.1.0-RC1", + "url": "https://github.com/symfony/HttpKernel/zipball/v2.1.0-RC2", + "reference": "v2.1.0-RC2", "shasum": "" }, "require": { @@ -313,12 +389,12 @@ "symfony/routing": "2.1.*" }, "suggest": { - "symfony/browser-kit": "v2.1.0-RC1", - "symfony/class-loader": "v2.1.0-RC1", - "symfony/config": "v2.1.0-RC1", - "symfony/console": "v2.1.0-RC1", - "symfony/dependency-injection": "v2.1.0-RC1", - "symfony/finder": "v2.1.0-RC1" + "symfony/browser-kit": "v2.1.0-RC2", + "symfony/class-loader": "v2.1.0-RC2", + "symfony/config": "v2.1.0-RC2", + "symfony/console": "v2.1.0-RC2", + "symfony/dependency-injection": "v2.1.0-RC2", + "symfony/finder": "v2.1.0-RC2" }, "type": "library", "extra": { @@ -354,19 +430,19 @@ }, { "name": "symfony/routing", - "version": "v2.1.0-RC1", - "version_normalized": "2.1.0.0-RC1", + "version": "v2.1.0-RC2", + "version_normalized": "2.1.0.0-RC2", "target-dir": "Symfony/Component/Routing", - "time": "2012-07-31 21:14:37", + "time": "2012-08-28 07:54:42", "source": { "type": "git", "url": "https://github.com/symfony/Routing", - "reference": "v2.1.0-RC1" + "reference": "v2.1.0-RC2" }, "dist": { "type": "zip", - "url": "https://github.com/symfony/Routing/zipball/v2.1.0-RC1", - "reference": "v2.1.0-RC1", + "url": "https://github.com/symfony/Routing/zipball/v2.1.0-RC2", + "reference": "v2.1.0-RC2", "shasum": "" }, "require": { @@ -379,8 +455,8 @@ "doctrine/common": ">=2.2,<2.4-dev" }, "suggest": { - "symfony/config": "v2.1.0-RC1", - "symfony/yaml": "v2.1.0-RC1", + "symfony/config": "v2.1.0-RC2", + "symfony/yaml": "v2.1.0-RC2", "doctrine/common": ">=2.2,<2.4-dev" }, "type": "library", @@ -417,19 +493,19 @@ }, { "name": "symfony/yaml", - "version": "v2.1.0-RC1", - "version_normalized": "2.1.0.0-RC1", + "version": "v2.1.0-RC2", + "version_normalized": "2.1.0.0-RC2", "target-dir": "Symfony/Component/Yaml", - "time": "2012-07-15 17:13:51", + "time": "2012-08-22 13:48:41", "source": { "type": "git", "url": "https://github.com/symfony/Yaml", - "reference": "v2.1.0-RC1" + "reference": "v2.1.0-RC2" }, "dist": { "type": "zip", - "url": "https://github.com/symfony/Yaml/zipball/v2.1.0-RC1", - "reference": "v2.1.0-RC1", + "url": "https://github.com/symfony/Yaml/zipball/v2.1.0-RC2", + "reference": "v2.1.0-RC2", "shasum": "" }, "require": { @@ -466,81 +542,5 @@ "Symfony\\Component\\Yaml": "" } } - }, - { - "name": "doctrine/common", - "version": "2.3.0-RC1", - "version_normalized": "2.3.0.0-RC1", - "time": "2012-07-29 10:44:28", - "source": { - "type": "git", - "url": "https://github.com/doctrine/common", - "reference": "2.3.0-RC1" - }, - "dist": { - "type": "zip", - "url": "https://github.com/doctrine/common/zipball/2.3.0-RC1", - "reference": "2.3.0-RC1", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3.x-dev" - } - }, - "installation-source": "dist", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": null - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": null, - "role": null - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org", - "homepage": null, - "role": null - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de", - "homepage": null, - "role": null - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": null - } - ], - "description": "Common Library for Doctrine projects", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "collections", - "spl", - "eventmanager", - "annotations", - "persistence" - ], - "autoload": { - "psr-0": { - "Doctrine\\Common": "lib/" - } - } } ] diff --git a/core/vendor/doctrine/common/composer.json b/core/vendor/doctrine/common/composer.json index c513315d2e70..ff87dba4283f 100644 --- a/core/vendor/doctrine/common/composer.json +++ b/core/vendor/doctrine/common/composer.json @@ -1,6 +1,6 @@ { "name": "doctrine/common", - "type": "library","version":"2.3.0-RC1", + "type": "library","version":"2.3.0-RC2", "description": "Common Library for Doctrine projects", "keywords": ["collections", "spl", "eventmanager", "annotations", "persistence"], "homepage": "http://www.doctrine-project.org", diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Annotations/AnnotationReader.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Annotations/AnnotationReader.php index 5a1d2538500b..286e7d09db67 100644 --- a/core/vendor/doctrine/common/lib/Doctrine/Common/Annotations/AnnotationReader.php +++ b/core/vendor/doctrine/common/lib/Doctrine/Common/Annotations/AnnotationReader.php @@ -68,7 +68,8 @@ class AnnotationReader implements Reader 'codeCoverageIgnore' => true, 'codeCoverageIgnoreStart' => true, 'codeCoverageIgnoreEnd' => true, 'Required' => true, 'Attribute' => true, 'Attributes' => true, 'Target' => true, 'SuppressWarnings' => true, - 'ingroup' => true, 'code' => true, 'endcode' => true + 'ingroup' => true, 'code' => true, 'endcode' => true, + 'package_version' => true, ); /** diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/ArrayCollection.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/ArrayCollection.php index a075c08b10b3..7c2b13e69031 100644 --- a/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/ArrayCollection.php +++ b/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/ArrayCollection.php @@ -496,15 +496,5 @@ public function matching(Criteria $criteria) return new static($filtered); } - - /** - * Return the expression builder. - * - * @return ExpressionBuilder - */ - public function expr() - { - return new ExpressionBuilder(); - } } diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Criteria.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Criteria.php index 6eb52e5ccce3..3b055495b1aa 100644 --- a/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Criteria.php +++ b/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Criteria.php @@ -20,6 +20,7 @@ namespace Doctrine\Common\Collections; use Doctrine\Common\Collections\Expr\Expression; +use Doctrine\Common\Collections\Expr\CompositeExpression; /** * Criteria for filtering Selectable collections. @@ -39,6 +40,11 @@ class Criteria */ const DESC = 'DESC'; + /** + * @var \Doctrine\Common\Collections\ExpressionBuilder + */ + private static $expressionBuilder; + /** * @var \Doctrine\Common\Collections\Expr\Expression */ @@ -59,6 +65,29 @@ class Criteria */ private $maxResults; + /** + * Creates an instance of the class. + * + * @return Criteria + */ + public static function create() + { + return new static(); + } + + /** + * Return the expression builder. + * + * @return \Doctrine\Common\Collections\ExpressionBuilder + */ + public static function expr() + { + if (self::$expressionBuilder === null) { + self::$expressionBuilder = new ExpressionBuilder(); + } + return self::$expressionBuilder; + } + /** * Construct new criteria * @@ -87,6 +116,46 @@ public function where(Expression $expression) return $this; } + /** + * Append the where expression to evaluate when this criteria is searched for + * using an AND with previous expression. + * + * @param Expression + * @return Criteria + */ + public function andWhere(Expression $expression) + { + if ($this->expression === null) { + return $this->where($expression); + } + + $this->expression = new CompositeExpression(CompositeExpression::TYPE_AND, array( + $this->expression, $expression + )); + + return $this; + } + + /** + * Append the where expression to evaluate when this criteria is searched for + * using an OR with previous expression. + * + * @param Expression + * @return Criteria + */ + public function orWhere(Expression $expression) + { + if ($this->expression === null) { + return $this->where($expression); + } + + $this->expression = new CompositeExpression(CompositeExpression::TYPE_OR, array( + $this->expression, $expression + )); + + return $this; + } + /** * Get the expression attached to this criteria. * diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Selectable.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Selectable.php index d5543c17f5d2..675d6ea8b0cd 100644 --- a/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Selectable.php +++ b/core/vendor/doctrine/common/lib/Doctrine/Common/Collections/Selectable.php @@ -44,12 +44,5 @@ interface Selectable * @return Collection */ function matching(Criteria $criteria); - - /** - * Return the expression builder. - * - * @return \Doctrine\Common\Collections\ExpressionBuilder - */ - function expr(); } diff --git a/core/vendor/doctrine/common/lib/Doctrine/Common/Version.php b/core/vendor/doctrine/common/lib/Doctrine/Common/Version.php index e196424364fe..0782163b707c 100644 --- a/core/vendor/doctrine/common/lib/Doctrine/Common/Version.php +++ b/core/vendor/doctrine/common/lib/Doctrine/Common/Version.php @@ -36,7 +36,7 @@ class Version /** * Current Doctrine Version */ - const VERSION = '2.3.0-RC1'; + const VERSION = '2.3.0-RC2'; /** * Compares a Doctrine version with the current one. diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CollectionTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CollectionTest.php index 58979fad9dff..280efa38028f 100644 --- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CollectionTest.php +++ b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CollectionTest.php @@ -212,7 +212,7 @@ public function testMatching() { $this->fillMatchingFixture(); - $col = $this->_coll->matching(new Criteria($this->_coll->expr()->eq("foo", "bar"))); + $col = $this->_coll->matching(new Criteria(Criteria::expr()->eq("foo", "bar"))); $this->assertInstanceOf('Doctrine\Common\Collections\Collection', $col); $this->assertNotSame($col, $this->_coll); $this->assertEquals(1, count($col)); diff --git a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CriteriaTest.php b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CriteriaTest.php index a7415f23ac21..03fb6cae0aef 100644 --- a/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CriteriaTest.php +++ b/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Collections/CriteriaTest.php @@ -3,9 +3,17 @@ use Doctrine\Common\Collections\Criteria; use Doctrine\Common\Collections\Expr\Comparison; +use Doctrine\Common\Collections\Expr\CompositeExpression; class CriteriaTest extends \PHPUnit_Framework_TestCase { + public function testCreate() + { + $criteria = Criteria::create(); + + $this->assertInstanceOf("Doctrine\Common\Collections\Criteria", $criteria); + } + public function testConstructor() { $expr = new Comparison("field", "=", "value"); @@ -27,12 +35,48 @@ public function testWhere() $this->assertSame($expr, $criteria->getWhereExpression()); } - public function testOrderings() + public function testAndWhere() { + $expr = new Comparison("field", "=", "value"); $criteria = new Criteria(); - $criteria->orderBy(array("foo" => "ASC")); + $criteria->where($expr); + $expr = $criteria->getWhereExpression(); + $criteria->andWhere($expr); + + $where = $criteria->getWhereExpression(); + $this->assertInstanceOf('Doctrine\Common\Collections\Expr\CompositeExpression', $where); + + $this->assertEquals(CompositeExpression::TYPE_AND, $where->getType()); + $this->assertSame(array($expr, $expr), $where->getExpressionList()); + } + + public function testOrWhere() + { + $expr = new Comparison("field", "=", "value"); + $criteria = new Criteria(); + + $criteria->where($expr); + $expr = $criteria->getWhereExpression(); + $criteria->orWhere($expr); + + $where = $criteria->getWhereExpression(); + $this->assertInstanceOf('Doctrine\Common\Collections\Expr\CompositeExpression', $where); + + $this->assertEquals(CompositeExpression::TYPE_OR, $where->getType()); + $this->assertSame(array($expr, $expr), $where->getExpressionList()); + } + + public function testOrderings() + { + $criteria = Criteria::create() + ->orderBy(array("foo" => "ASC")); $this->assertEquals(array("foo" => "ASC"), $criteria->getOrderings()); } + + public function testExpr() + { + $this->assertInstanceOf('Doctrine\Common\Collections\ExpressionBuilder', Criteria::expr()); + } } diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php index c9fe38260388..cf501980a045 100644 --- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php +++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassLoaderTest.php @@ -15,6 +15,28 @@ class ClassLoaderTest extends \PHPUnit_Framework_TestCase { + public function testGetPrefixes() + { + $loader = new ClassLoader(); + $loader->addPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->addPrefix('Bar', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->addPrefix('Bas', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $prefixes = $loader->getPrefixes(); + $this->assertArrayHasKey('Foo', $prefixes); + $this->assertArrayNotHasKey('Foo1', $prefixes); + $this->assertArrayHasKey('Bar', $prefixes); + $this->assertArrayHasKey('Bas', $prefixes); + } + + public function testGetFallbackDirs() + { + $loader = new ClassLoader(); + $loader->addPrefix(null, __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->addPrefix(null, __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $fallback_dirs = $loader->getFallbackDirs(); + $this->assertCount(2, $fallback_dirs); + } + /** * @dataProvider getLoadClassTests */ @@ -37,6 +59,35 @@ public function getLoadClassTests() ); } + /** + * @dataProvider getLoadNonexistentClassTests + */ + public function testLoadNonexistentClass($className, $testClassName, $message) + { + $loader = new ClassLoader(); + $loader->addPrefix('Namespaced2\\', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->addPrefix('Pearlike2_', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->loadClass($testClassName); + $this->assertFalse(class_exists($className), $message); + } + + public function getLoadNonexistentClassTests() + { + return array( + array('\\Pearlike3_Bar', '\\Pearlike3_Bar', '->loadClass() loads non exising Pearlike3_Bar class with a leading slash'), + ); + } + + public function testAddPrefix() + { + $loader = new ClassLoader(); + $loader->addPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->addPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $prefixes = $loader->getPrefixes(); + $this->assertArrayHasKey('Foo', $prefixes); + $this->assertCount(2, $prefixes['Foo']); + } + public function testUseIncludePath() { $loader = new ClassLoader(); diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php index 6cebd38282ba..e69502b17d75 100644 --- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php +++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/ClassMapGeneratorTest.php @@ -15,6 +15,50 @@ class ClassMapGeneratorTest extends \PHPUnit_Framework_TestCase { + /** + * @var string $workspace + */ + private $workspace = null; + + public function prepare_workspace() + { + $this->workspace = rtrim(sys_get_temp_dir(), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.time().rand(0, 1000); + mkdir($this->workspace, 0777, true); + $this->workspace = realpath($this->workspace); + } + + /** + * @param string $file + */ + private function clean($file) + { + if (is_dir($file) && !is_link($file)) { + $dir = new \FilesystemIterator($file); + foreach ($dir as $childFile) { + $this->clean($childFile); + } + + rmdir($file); + } else { + unlink($file); + } + } + + /** + * @dataProvider getTestCreateMapTests + */ + public function testDump($directory, $expected) + { + $this->prepare_workspace(); + + $file = $this->workspace.'/file'; + + $generator = new ClassMapGenerator(); + $generator->dump($directory, $file); + $this->assertFileExists($file); + + $this->clean($this->workspace); + } /** * @dataProvider getTestCreateMapTests diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php index 8ee29b53ec43..fd60fdf8e8d9 100644 --- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php +++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/Tests/UniversalClassLoaderTest.php @@ -56,6 +56,32 @@ public function testUseIncludePath() set_include_path($includePath); } + public function testGetNamespaces() + { + $loader = new UniversalClassLoader(); + $loader->registerNamespace('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->registerNamespace('Bar', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->registerNamespace('Bas', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $namespaces = $loader->getNamespaces(); + $this->assertArrayHasKey('Foo', $namespaces); + $this->assertArrayNotHasKey('Foo1', $namespaces); + $this->assertArrayHasKey('Bar', $namespaces); + $this->assertArrayHasKey('Bas', $namespaces); + } + + public function testGetPrefixes() + { + $loader = new UniversalClassLoader(); + $loader->registerPrefix('Foo', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->registerPrefix('Bar', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $loader->registerPrefix('Bas', __DIR__.DIRECTORY_SEPARATOR.'Fixtures'); + $prefixes = $loader->getPrefixes(); + $this->assertArrayHasKey('Foo', $prefixes); + $this->assertArrayNotHasKey('Foo1', $prefixes); + $this->assertArrayHasKey('Bar', $prefixes); + $this->assertArrayHasKey('Bas', $prefixes); + } + /** * @dataProvider getLoadClassFromFallbackTests */ diff --git a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json index 6e3b3b8e2e88..ccd9ba9bc700 100644 --- a/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json +++ b/core/vendor/symfony/class-loader/Symfony/Component/ClassLoader/composer.json @@ -26,6 +26,7 @@ "psr-0": { "Symfony\\Component\\ClassLoader": "" } }, "target-dir": "Symfony/Component/ClassLoader", + "minimum-stability": "dev", "extra": { "branch-alias": { "dev-master": "2.1-dev" diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index 4d34e55402ef..4a29d234484c 100644 --- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -694,7 +694,13 @@ private function addFrozenConstructor() */ public function __construct() { - \$this->parameters = \$this->getDefaultParameters(); +EOF; + + if ($this->container->getParameterBag()->all()) { + $code .= "\n \$this->parameters = \$this->getDefaultParameters();\n"; + } + + $code .= <<<EOF \$this->services = \$this->scopedServices = diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php index 75250277a1a3..5329195cdb8a 100644 --- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php +++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php @@ -204,14 +204,28 @@ private function parseDefinition($id, $service, $file) */ private function parseFile($file) { + $internalErrors = libxml_use_internal_errors(true); + $disableEntities = libxml_disable_entity_loader(true); + libxml_clear_errors(); + $dom = new \DOMDocument(); - libxml_use_internal_errors(true); - if (!$dom->load($file, defined('LIBXML_COMPACT') ? LIBXML_COMPACT : 0)) { - throw new InvalidArgumentException(implode("\n", $this->getXmlErrors())); - } $dom->validateOnParse = true; + if (!$dom->loadXML(file_get_contents($file), LIBXML_NONET | (defined('LIBXML_COMPACT') ? LIBXML_COMPACT : 0))) { + libxml_disable_entity_loader($disableEntities); + + throw new \InvalidArgumentException(implode("\n", $this->getXmlErrors($internalErrors))); + } $dom->normalizeDocument(); - libxml_use_internal_errors(false); + + libxml_use_internal_errors($internalErrors); + libxml_disable_entity_loader($disableEntities); + + foreach ($dom->childNodes as $child) { + if ($child->nodeType === XML_DOCUMENT_TYPE_NODE) { + throw new \InvalidArgumentException('Document types are not allowed.'); + } + } + $this->validate($dom, $file); return simplexml_import_dom($dom, 'Symfony\\Component\\DependencyInjection\\SimpleXMLElement'); @@ -345,12 +359,15 @@ private function validateSchema(\DOMDocument $dom, $file) ; $current = libxml_use_internal_errors(true); + libxml_clear_errors(); + $valid = @$dom->schemaValidateSource($source); + foreach ($tmpfiles as $tmpfile) { @unlink($tmpfile); } if (!$valid) { - throw new InvalidArgumentException(implode("\n", $this->getXmlErrors())); + throw new InvalidArgumentException(implode("\n", $this->getXmlErrors($current))); } libxml_use_internal_errors($current); } @@ -389,7 +406,7 @@ private function validateExtensions(\DOMDocument $dom, $file) * * @return array */ - private function getXmlErrors() + private function getXmlErrors($internalErrors) { $errors = array(); foreach (libxml_get_errors() as $error) { @@ -404,6 +421,7 @@ private function getXmlErrors() } libxml_clear_errors(); + libxml_use_internal_errors($internalErrors); return $errors; } diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php index c1e2070a98d9..859ca5001339 100644 --- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php +++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php @@ -44,6 +44,20 @@ public function testDump() new PhpDumper($container); } + public function testDumpFrozenContainerWithNoParameter() + { + $container = new ContainerBuilder(); + $container->register('foo', 'stdClass'); + + $container->compile(); + + $dumper = new PhpDumper($container); + + $dumpedString = $dumper->dump(); + $this->assertStringEqualsFile(self::$fixturesPath.'/php/services11.php', $dumpedString, '->dump() does not add getDefaultParameters() method call if container have no parameters.'); + $this->assertNotRegexp("/function getDefaultParameters\(/", $dumpedString, '->dump() does not add getDefaultParameters() method definition.'); + } + public function testDumpOptimizationString() { $definition = new Definition(); diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/withdoctype.xml b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/withdoctype.xml new file mode 100644 index 000000000000..f217d5bcacf5 --- /dev/null +++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/withdoctype.xml @@ -0,0 +1,3 @@ +<?xml version="1.0"?> +<!DOCTYPE foo> +<foo></foo> diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php index 12109c2b4976..b589ed95ac03 100644 --- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php +++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Tests/Loader/XmlFileLoaderTest.php @@ -328,4 +328,16 @@ public function testNoNamingConflictsForAnonymousServices() $inner2 = $services[(string) $args2[0]]; $this->assertEquals('BarClass2', $inner2->getClass(), '->load() uses the same configuration as for the anonymous ones'); } + + /** + * @expectedException \InvalidArgumentException + * @expectedExceptionMessage Document types are not allowed. + */ + public function testDocTypeIsNotAllowed() + { + $container = new ContainerBuilder(); + + $loader1 = new XmlFileLoader($container, new FileLocator(self::$fixturesPath.'/xml')); + $loader1->load('withdoctype.xml'); + } } diff --git a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json index 7238bd07ea4e..81811c39a25b 100644 --- a/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json +++ b/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/composer.json @@ -30,6 +30,7 @@ "psr-0": { "Symfony\\Component\\DependencyInjection": "" } }, "target-dir": "Symfony/Component/DependencyInjection", + "minimum-stability": "dev", "extra": { "branch-alias": { "dev-master": "2.1-dev" diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php index 0ad76eedd5d7..2f1dd64f5605 100644 --- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php +++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php @@ -18,7 +18,7 @@ * * @author Drak <drak@zikula.org> */ -class GenericEvent extends Event implements \ArrayAccess +class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate { /** * Observer pattern subject. @@ -177,4 +177,14 @@ public function offsetExists($key) { return $this->hasArgument($key); } + + /** + * IteratorAggregate for iterating over the object like an array + * + * @return \ArrayIterator + */ + public function getIterator() + { + return new \ArrayIterator($this->arguments); + } } diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php index 6c9a610861c7..179e9a34ed87 100644 --- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php +++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php @@ -128,4 +128,13 @@ public function testGetSubject() { $this->assertSame($this->subject, $this->event->getSubject()); } + + public function testHasIterator() + { + $data = array(); + foreach ($this->event as $key => $value) { + $data[$key] = $value; + } + $this->assertEquals(array('name' => 'Event'), $data); + } } diff --git a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json index 9a34819d7fa5..93abadeaca77 100644 --- a/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json +++ b/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/composer.json @@ -29,6 +29,7 @@ "psr-0": { "Symfony\\Component\\EventDispatcher": "" } }, "target-dir": "Symfony/Component/EventDispatcher", + "minimum-stability": "dev", "extra": { "branch-alias": { "dev-master": "2.1-dev" diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php index cb340120b48a..bb579b64f9dc 100644 --- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php +++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php @@ -157,7 +157,7 @@ public function set($key, $values, $replace = true) { $key = strtr(strtolower($key), '_', '-'); - $values = (array) $values; + $values = array_values((array) $values); if (true === $replace || !isset($this->headers[$key])) { $this->headers[$key] = $values; diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php index 43ade8ffaf6f..29b4cc7b59a1 100644 --- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php +++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/JsonResponse.php @@ -97,12 +97,16 @@ protected function update() { if (null !== $this->callback) { // Not using application/javascript for compatibility reasons with older browsers. - $this->headers->set('Content-Type', 'text/javascript', true); + $this->headers->set('Content-Type', 'text/javascript'); return $this->setContent(sprintf('%s(%s);', $this->callback, $this->data)); } - $this->headers->set('Content-Type', 'application/json', false); + // Only set the header when there is none or when it equals 'text/javascript' (from a previous update with callback) + // in order to not overwrite a custom definition. + if (!$this->headers->has('Content-Type') || 'text/javascript' === $this->headers->get('Content-Type')) { + $this->headers->set('Content-Type', 'application/json'); + } return $this->setContent($this->data); } diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php index 6006773c9ddb..e8293e4dde46 100644 --- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php +++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.php @@ -104,7 +104,7 @@ public function write($sessionId, $data) { $data = array( $this->options['id_field'] => $sessionId, - $this->options['data_field'] => new \MongoBinData($data), + $this->options['data_field'] => new \MongoBinData($data, \MongoBinData::BYTE_ARRAY), $this->options['time_field'] => new \MongoTimestamp() ); diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php index ecc68adfdeba..4a7d360fbb6c 100644 --- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php +++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php @@ -349,7 +349,7 @@ public function setSaveHandler($saveHandler = null) if (!$saveHandler instanceof AbstractProxy && $saveHandler instanceof \SessionHandlerInterface) { $saveHandler = new SessionHandlerProxy($saveHandler); } elseif (!$saveHandler instanceof AbstractProxy) { - $saveHandler = new NativeProxy($saveHandler); + $saveHandler = new NativeProxy(); } $this->saveHandler = $saveHandler; diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php index 54289f8f8325..bafccb2eba25 100644 --- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php +++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/HeaderBagTest.php @@ -68,6 +68,14 @@ public function testGet() $this->assertEquals( array('bar', 'bor'), $bag->get('foo', 'nope', false), '->get return all values as array'); } + public function testSetAssociativeArray() + { + $bag = new HeaderBag(); + $bag->set('foo', array('bad-assoc-index' => 'value')); + $this->assertSame('value', $bag->get('foo')); + $this->assertEquals(array('value'), $bag->get('foo', 'nope', false), 'assoc indices of multi-valued headers are ignored'); + } + /** * @covers Symfony\Component\HttpFoundation\HeaderBag::contains */ diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php index fdb0b99bcd83..9f58f2d583f0 100644 --- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php +++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Storage/Handler/NativeFileSessionHandlerTest.php @@ -46,10 +46,9 @@ public function test__ConstructSavePath($savePath, $expectedSavePath, $path) { $handler = new NativeFileSessionHandler($savePath); $this->assertEquals($expectedSavePath, ini_get('session.save_path')); - $dir = realpath('/'.$path); - $this->assertTrue(is_dir(realpath($dir))); + $this->assertTrue(is_dir(realpath($path))); - rmdir($dir); + rmdir($path); } public function savePathDataProvider() diff --git a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json index 4e4f90779fc6..91c23c24870f 100644 --- a/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json +++ b/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/composer.json @@ -25,6 +25,7 @@ } }, "target-dir": "Symfony/Component/HttpFoundation", + "minimum-stability": "dev", "extra": { "branch-alias": { "dev-master": "2.1-dev" diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php index 588b07e3bf8e..d601e4b76cb4 100644 --- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php +++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Kernel.php @@ -58,12 +58,12 @@ abstract class Kernel implements KernelInterface, TerminableInterface protected $classes; protected $errorReportingLevel; - const VERSION = '2.1.0-RC1'; + const VERSION = '2.1.0-RC2'; const VERSION_ID = '20100'; const MAJOR_VERSION = '2'; const MINOR_VERSION = '1'; const RELEASE_VERSION = '0'; - const EXTRA_VERSION = 'RC1'; + const EXTRA_VERSION = 'RC2'; /** * Constructor. diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php index 594af3247a64..d0afdf33182f 100644 --- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php +++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/Controller/ControllerResolverTest.php @@ -134,11 +134,15 @@ public function testGetArguments() $request->attributes->set('foobar', 'foobar'); $controller = array(new self(), 'controllerMethod3'); - try { - $resolver->getArguments($request, $controller); - $this->fail('->getArguments() throws a \RuntimeException exception if it cannot determine the argument value'); - } catch (\Exception $e) { - $this->assertInstanceOf('\RuntimeException', $e, '->getArguments() throws a \RuntimeException exception if it cannot determine the argument value'); + if (version_compare(PHP_VERSION, '5.3.16', '==')) { + $this->markTestSkipped('PHP 5.3.16 has a major bug in the Reflection sub-system'); + } else { + try { + $resolver->getArguments($request, $controller); + $this->fail('->getArguments() throws a \RuntimeException exception if it cannot determine the argument value'); + } catch (\Exception $e) { + $this->assertInstanceOf('\RuntimeException', $e, '->getArguments() throws a \RuntimeException exception if it cannot determine the argument value'); + } } $request = Request::create('/'); diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php index 0def224354f3..46361f6f5ab6 100644 --- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php +++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/KernelTest.php @@ -293,15 +293,7 @@ public function testGetRootDir() { $kernel = new KernelForTest('test', true); - $rootDir = __DIR__.DIRECTORY_SEPARATOR.'Fixtures'; - - // getRootDir() returns path with slashes - // without conversion test fails on Windows - if (defined('PHP_WINDOWS_VERSION_MAJOR')) { - $rootDir = strtr($rootDir, '\\', '/'); - } - - $this->assertEquals($rootDir, $kernel->getRootDir()); + $this->assertEquals(__DIR__.DIRECTORY_SEPARATOR.'Fixtures', realpath($kernel->getRootDir())); } public function testGetName() diff --git a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json index e8c693f72b63..12ea499dfd65 100644 --- a/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json +++ b/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/composer.json @@ -42,6 +42,7 @@ "psr-0": { "Symfony\\Component\\HttpKernel": "" } }, "target-dir": "Symfony/Component/HttpKernel", + "minimum-stability": "dev", "extra": { "branch-alias": { "dev-master": "2.1-dev" diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php b/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php index c86c9eca5b29..54d4e2ce553f 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/CompiledRoute.php @@ -18,7 +18,6 @@ */ class CompiledRoute { - private $route; private $variables; private $tokens; private $staticPrefix; @@ -27,31 +26,19 @@ class CompiledRoute /** * Constructor. * - * @param Route $route A original Route instance * @param string $staticPrefix The static prefix of the compiled route * @param string $regex The regular expression to use to match this route * @param array $tokens An array of tokens to use to generate URL for this route * @param array $variables An array of variables */ - public function __construct(Route $route, $staticPrefix, $regex, array $tokens, array $variables) + public function __construct($staticPrefix, $regex, array $tokens, array $variables) { - $this->route = $route; $this->staticPrefix = $staticPrefix; $this->regex = $regex; $this->tokens = $tokens; $this->variables = $variables; } - /** - * Returns the Route instance. - * - * @return Route A Route instance - */ - public function getRoute() - { - return $this->route; - } - /** * Returns the static prefix. * @@ -91,44 +78,4 @@ public function getVariables() { return $this->variables; } - - /** - * Returns the pattern. - * - * @return string The pattern - */ - public function getPattern() - { - return $this->route->getPattern(); - } - - /** - * Returns the options. - * - * @return array The options - */ - public function getOptions() - { - return $this->route->getOptions(); - } - - /** - * Returns the defaults. - * - * @return array The defaults - */ - public function getDefaults() - { - return $this->route->getDefaults(); - } - - /** - * Returns the requirements. - * - * @return array The requirements - */ - public function getRequirements() - { - return $this->route->getRequirements(); - } } diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php index fad8ceaac08d..9b5cc0597e0f 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php @@ -90,8 +90,8 @@ private function generateDeclaredRoutes() $properties = array(); $properties[] = $compiledRoute->getVariables(); - $properties[] = $compiledRoute->getDefaults(); - $properties[] = $compiledRoute->getRequirements(); + $properties[] = $route->getDefaults(); + $properties[] = $route->getRequirements(); $properties[] = $compiledRoute->getTokens(); $routes .= sprintf(" '%s' => %s,\n", $name, str_replace("\n", '', var_export($properties, true))); diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php index f83ce6f370d0..5e0093da3858 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Loader/XmlFileLoader.php @@ -170,14 +170,28 @@ protected function parseRoute(RouteCollection $collection, \DOMElement $definiti */ protected function loadFile($file) { + $internalErrors = libxml_use_internal_errors(true); + $disableEntities = libxml_disable_entity_loader(true); + libxml_clear_errors(); + $dom = new \DOMDocument(); - libxml_use_internal_errors(true); - if (!$dom->load($file, defined('LIBXML_COMPACT') ? LIBXML_COMPACT : 0)) { - throw new \InvalidArgumentException(implode("\n", $this->getXmlErrors())); - } $dom->validateOnParse = true; + if (!$dom->loadXML(file_get_contents($file), LIBXML_NONET | (defined('LIBXML_COMPACT') ? LIBXML_COMPACT : 0))) { + libxml_disable_entity_loader($disableEntities); + + throw new \InvalidArgumentException(implode("\n", $this->getXmlErrors($internalErrors))); + } $dom->normalizeDocument(); - libxml_use_internal_errors(false); + + libxml_use_internal_errors($internalErrors); + libxml_disable_entity_loader($disableEntities); + + foreach ($dom->childNodes as $child) { + if ($child->nodeType === XML_DOCUMENT_TYPE_NODE) { + throw new \InvalidArgumentException('Document types are not allowed.'); + } + } + $this->validate($dom); return $dom; @@ -195,8 +209,10 @@ protected function validate(\DOMDocument $dom) $location = __DIR__.'/schema/routing/routing-1.0.xsd'; $current = libxml_use_internal_errors(true); + libxml_clear_errors(); + if (!$dom->schemaValidate($location)) { - throw new \InvalidArgumentException(implode("\n", $this->getXmlErrors())); + throw new \InvalidArgumentException(implode("\n", $this->getXmlErrors($current))); } libxml_use_internal_errors($current); } @@ -206,7 +222,7 @@ protected function validate(\DOMDocument $dom) * * @return array An array of libxml error strings */ - private function getXmlErrors() + private function getXmlErrors($internalErrors) { $errors = array(); foreach (libxml_get_errors() as $error) { @@ -221,6 +237,7 @@ private function getXmlErrors() } libxml_clear_errors(); + libxml_use_internal_errors($internalErrors); return $errors; } diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php index 72130544cefd..15fab9eb6e71 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Matcher/Dumper/PhpMatcherDumper.php @@ -271,14 +271,14 @@ private function compileRoute(Route $route, $name, $supportsRedirections, $paren } // optimize parameters array - if (true === $matches && $compiledRoute->getDefaults()) { + if (true === $matches && $route->getDefaults()) { $code .= sprintf(" return array_merge(\$this->mergeDefaults(\$matches, %s), array('_route' => '%s'));\n" - , str_replace("\n", '', var_export($compiledRoute->getDefaults(), true)), $name); + , str_replace("\n", '', var_export($route->getDefaults(), true)), $name); } elseif (true === $matches) { $code .= sprintf(" \$matches['_route'] = '%s';\n\n", $name); $code .= " return \$matches;\n"; - } elseif ($compiledRoute->getDefaults()) { - $code .= sprintf(" return %s;\n", str_replace("\n", '', var_export(array_merge($compiledRoute->getDefaults(), array('_route' => $name)), true))); + } elseif ($route->getDefaults()) { + $code .= sprintf(" return %s;\n", str_replace("\n", '', var_export(array_merge($route->getDefaults(), array('_route' => $name)), true))); } else { $code .= sprintf(" return array('_route' => '%s');\n", $name); } diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php index b93d36b446a2..5aaae19c3483 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/RouteCompiler.php @@ -85,7 +85,6 @@ public function compile(Route $route) } return new CompiledRoute( - $route, 'text' === $tokens[0][0] ? $tokens[0][1] : '', self::REGEX_DELIMITER.'^'.$regexp.'$'.self::REGEX_DELIMITER.'s', array_reverse($tokens), diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/CompiledRouteTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/CompiledRouteTest.php index d0e6186e05b6..c65da0c6f2ee 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/CompiledRouteTest.php +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/CompiledRouteTest.php @@ -12,32 +12,15 @@ namespace Symfony\Component\Routing\Tests; use Symfony\Component\Routing\CompiledRoute; -use Symfony\Component\Routing\Route; class CompiledRouteTest extends \PHPUnit_Framework_TestCase { public function testAccessors() { - $route = new Route('/{foo}', array('foo' => 'bar'), array('foo' => '\d+'), array('foo' => 'bar')); - - $compiled = new CompiledRoute($route, 'prefix', 'regex', array('tokens'), array('variables')); - $this->assertEquals($route, $compiled->getRoute(), '__construct() takes a route as its first argument'); - $this->assertEquals('prefix', $compiled->getStaticPrefix(), '__construct() takes a static prefix as its second argument'); - $this->assertEquals('regex', $compiled->getRegex(), '__construct() takes a regexp as its third argument'); - $this->assertEquals(array('tokens'), $compiled->getTokens(), '__construct() takes an array of tokens as its fourth argument'); - $this->assertEquals(array('variables'), $compiled->getVariables(), '__construct() takes an array of variables as its fifth argument'); - } - - public function testgetPatterngetDefaultsgetOptionsgetRequirements() - { - $route = new Route('/{foo}', array('foo' => 'bar'), array('foo' => '\d+'), array('foo' => 'bar')); - - $compiled = new CompiledRoute($route, 'prefix', 'regex', array('tokens'), array('variables')); - $this->assertEquals('/{foo}', $compiled->getPattern(), '->getPattern() returns the route pattern'); - $this->assertEquals(array('foo' => 'bar'), $compiled->getDefaults(), '->getDefaults() returns the route defaults'); - $this->assertEquals(array('foo' => '\d+'), $compiled->getRequirements(), '->getRequirements() returns the route requirements'); - $this->assertEquals(array_merge(array( - 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler', - ), array('foo' => 'bar')), $compiled->getOptions(), '->getOptions() returns the route options'); + $compiled = new CompiledRoute('prefix', 'regex', array('tokens'), array('variables')); + $this->assertEquals('prefix', $compiled->getStaticPrefix(), '__construct() takes a static prefix as its first argument'); + $this->assertEquals('regex', $compiled->getRegex(), '__construct() takes a regexp as its second argument'); + $this->assertEquals(array('tokens'), $compiled->getTokens(), '__construct() takes an array of tokens as its third argument'); + $this->assertEquals(array('variables'), $compiled->getVariables(), '__construct() takes an array of variables as its forth argument'); } } diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/withdoctype.xml b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/withdoctype.xml new file mode 100644 index 000000000000..f217d5bcacf5 --- /dev/null +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Fixtures/withdoctype.xml @@ -0,0 +1,3 @@ +<?xml version="1.0"?> +<!DOCTYPE foo> +<foo></foo> diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php index 554ee1a88ba3..e6f217606da4 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php @@ -88,4 +88,14 @@ public function getPathsToInvalidFiles() { return array(array('nonvalidnode.xml'), array('nonvalidroute.xml'), array('nonvalid.xml')); } + + /** + * @expectedException \InvalidArgumentException + * @expectedExceptionMessage Document types are not allowed. + */ + public function testDocTypeIsNotAllowed() + { + $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures'))); + $loader->load('withdoctype.xml'); + } } diff --git a/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json index 44869a369517..09706a6ff3a5 100644 --- a/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json +++ b/core/vendor/symfony/routing/Symfony/Component/Routing/composer.json @@ -33,6 +33,7 @@ "psr-0": { "Symfony\\Component\\Routing": "" } }, "target-dir": "Symfony/Component/Routing", + "minimum-stability": "dev", "extra": { "branch-alias": { "dev-master": "2.1-dev" diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php index 233891698545..220cb3974256 100644 --- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php +++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Dumper.php @@ -18,6 +18,23 @@ */ class Dumper { + /** + * The amount of spaces to use for indentation of nested nodes. + * + * @var integer + */ + protected $indentation = 4; + + /** + * Sets the indentation. + * + * @param integer $num The amount of spaces to use for intendation of nested nodes. + */ + public function setIndentation($num) + { + $this->indentation = (int) $num; + } + /** * Dumps a PHP value to YAML. * @@ -44,7 +61,7 @@ public function dump($input, $inline = 0, $indent = 0) $prefix, $isAHash ? Inline::dump($key).':' : '-', $willBeInlined ? ' ' : "\n", - $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + 4) + $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + $this->indentation) ).($willBeInlined ? "\n" : ''); } } diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php index d35e67d62c02..85cdf3db66ec 100644 --- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php +++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php @@ -97,14 +97,16 @@ public static function parse($input) * * @param array $array PHP array * @param integer $inline The level where you switch to inline YAML + * @param integer $indent The amount of spaces to use for indentation of nested nodes. * * @return string A YAML string representing the original PHP array * * @api */ - public static function dump($array, $inline = 2) + public static function dump($array, $inline = 2, $indent = 4) { $yaml = new Dumper(); + $yaml->setIndentation($indent); return $yaml->dump($array, $inline); } diff --git a/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json b/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json index c2894da6a325..88460ce34b70 100644 --- a/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json +++ b/core/vendor/symfony/yaml/Symfony/Component/Yaml/composer.json @@ -22,6 +22,7 @@ "psr-0": { "Symfony\\Component\\Yaml": "" } }, "target-dir": "Symfony/Component/Yaml", + "minimum-stability": "dev", "extra": { "branch-alias": { "dev-master": "2.1-dev" -- GitLab