From 32836d2f52e64bb07f562abba8ca2961816f090b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 21 Jul 2015 16:01:05 +0200 Subject: php-symfony: sync with fedora Rawhide --- php-symfony-pr15249.patch | 173 ++++++++++++++++++++++++++++++++++++++++++++++ php-symfony.spec | 19 ++++- 2 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 php-symfony-pr15249.patch diff --git a/php-symfony-pr15249.patch b/php-symfony-pr15249.patch new file mode 100644 index 0000000..fc41718 --- /dev/null +++ b/php-symfony-pr15249.patch @@ -0,0 +1,173 @@ +From eb80fbb48ce47070507918fd692f8c20f65816dd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= +Date: Thu, 9 Jul 2015 11:23:44 +0200 +Subject: [PATCH 1/3] [HttpFoundation] Allow to use resources as content body + and to return resources from string content. + +--- + src/Symfony/Component/HttpFoundation/Request.php | 52 +++++++++++++++------- + .../Component/HttpFoundation/Tests/RequestTest.php | 20 +++++++++ + 2 files changed, 57 insertions(+), 15 deletions(-) + +diff --git a/src/Symfony/Component/HttpFoundation/Request.php b/src/Symfony/Component/HttpFoundation/Request.php +index 84b3a69..6fa20ac 100644 +--- a/src/Symfony/Component/HttpFoundation/Request.php ++++ b/src/Symfony/Component/HttpFoundation/Request.php +@@ -199,13 +199,13 @@ class Request + /** + * Constructor. + * +- * @param array $query The GET parameters +- * @param array $request The POST parameters +- * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) +- * @param array $cookies The COOKIE parameters +- * @param array $files The FILES parameters +- * @param array $server The SERVER parameters +- * @param string $content The raw body data ++ * @param array $query The GET parameters ++ * @param array $request The POST parameters ++ * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) ++ * @param array $cookies The COOKIE parameters ++ * @param array $files The FILES parameters ++ * @param array $server The SERVER parameters ++ * @param string|resource $content The raw body data + * + * @api + */ +@@ -219,13 +219,13 @@ public function __construct(array $query = array(), array $request = array(), ar + * + * This method also re-initializes all properties. + * +- * @param array $query The GET parameters +- * @param array $request The POST parameters +- * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) +- * @param array $cookies The COOKIE parameters +- * @param array $files The FILES parameters +- * @param array $server The SERVER parameters +- * @param string $content The raw body data ++ * @param array $query The GET parameters ++ * @param array $request The POST parameters ++ * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) ++ * @param array $cookies The COOKIE parameters ++ * @param array $files The FILES parameters ++ * @param array $server The SERVER parameters ++ * @param string|resource $content The raw body data + * + * @api + */ +@@ -1465,16 +1465,38 @@ public function isMethodSafe() + */ + public function getContent($asResource = false) + { +- if (PHP_VERSION_ID < 50600 && (false === $this->content || (true === $asResource && null !== $this->content))) { ++ $currentContentIsResource = is_resource($this->content); ++ if (PHP_VERSION_ID < 50600 && !$currentContentIsResource && (false === $this->content || (true === $asResource && null !== $this->content))) { + throw new \LogicException('getContent() can only be called once when using the resource return type and PHP below 5.6.'); + } + + if (true === $asResource) { ++ if ($currentContentIsResource) { ++ rewind($this->content); ++ ++ return $this->content; ++ } ++ ++ // Content passed in parameter (test) ++ if (is_string($this->content)) { ++ $resource = fopen('php://temp','r+'); ++ fwrite($resource, $this->content); ++ rewind($resource); ++ ++ return $resource; ++ } ++ + $this->content = false; + + return fopen('php://input', 'rb'); + } + ++ if ($currentContentIsResource) { ++ rewind($this->content); ++ ++ return stream_get_contents($this->content); ++ } ++ + if (null === $this->content) { + $this->content = file_get_contents('php://input'); + } +diff --git a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php +index 366b555..fcc73f5 100644 +--- a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php ++++ b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php +@@ -923,6 +923,26 @@ public function testGetContentReturnsResource() + $this->assertTrue(feof($retval)); + } + ++ public function testGetContentReturnsResourceWhenContentSetInConstructor() ++ { ++ $req = new Request(array(), array(), array(), array(), array(), array(), 'MyContent'); ++ $resource = $req->getContent(true); ++ ++ $this->assertTrue(is_resource($resource)); ++ $this->assertEquals('MyContent', stream_get_contents($resource)); ++ } ++ ++ public function testContentAsResource() ++ { ++ $resource = fopen('php://memory','r+'); ++ fwrite($resource, 'My other content'); ++ rewind($resource); ++ ++ $req = new Request(array(), array(), array(), array(), array(), array(), $resource); ++ $this->assertEquals('My other content', stream_get_contents($req->getContent(true))); ++ $this->assertEquals('My other content', $req->getContent()); ++ } ++ + /** + * @expectedException \LogicException + * @dataProvider getContentCantBeCalledTwiceWithResourcesProvider + +From bb6db5768b5bb7e3b1f5e71656d3ddf779151006 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= +Date: Thu, 16 Jul 2015 08:17:59 +0200 +Subject: [PATCH 2/3] Simplify condition + +--- + src/Symfony/Component/HttpFoundation/Request.php | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Symfony/Component/HttpFoundation/Request.php b/src/Symfony/Component/HttpFoundation/Request.php +index 6fa20ac..2d28251 100644 +--- a/src/Symfony/Component/HttpFoundation/Request.php ++++ b/src/Symfony/Component/HttpFoundation/Request.php +@@ -1466,7 +1466,7 @@ public function isMethodSafe() + public function getContent($asResource = false) + { + $currentContentIsResource = is_resource($this->content); +- if (PHP_VERSION_ID < 50600 && !$currentContentIsResource && (false === $this->content || (true === $asResource && null !== $this->content))) { ++ if (PHP_VERSION_ID < 50600 && false === $this->content) { + throw new \LogicException('getContent() can only be called once when using the resource return type and PHP below 5.6.'); + } + + +From fc90cfa0c70677b5b119cbbd882059552468d84b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= +Date: Thu, 16 Jul 2015 08:34:36 +0200 +Subject: [PATCH 3/3] Fix test + +--- + src/Symfony/Component/HttpFoundation/Tests/RequestTest.php | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php +index fcc73f5..797a00a 100644 +--- a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php ++++ b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php +@@ -987,7 +987,6 @@ public function getContentCantBeCalledTwiceWithResourcesProvider() + return array( + 'Resource then fetch' => array(true, false), + 'Resource then resource' => array(true, true), +- 'Fetch then resource' => array(false, true), + ); + } + diff --git a/php-symfony.spec b/php-symfony.spec index 00b2cb2..241c73c 100644 --- a/php-symfony.spec +++ b/php-symfony.spec @@ -90,7 +90,7 @@ Name: php-%{composer_project} Version: %{github_version} -Release: 2%{?dist}.1 +Release: 3%{?dist} Summary: PHP framework for web projects Group: Development/Libraries @@ -98,6 +98,12 @@ License: MIT URL: http://symfony.com Source0: https://github.com/%{github_owner}/%{github_name}/archive/%{github_commit}/%{name}-%{github_version}-%{github_short}.tar.gz +# [HttpFoundation] [PSR-7] Allow to use resources as content body and to return +# resources from string content +# https://github.com/symfony/symfony/pull/15249 +# https://github.com/symfony/psr-http-message-bridge/issues/8 +Patch0: %{name}-pr15249.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch # Tests @@ -1576,7 +1582,6 @@ Requires: php-gd Requires: php-iconv Requires: php-json Requires: php-mbstring -Requires: php-mysql Requires: php-pcre Requires: php-posix Requires: php-reflection @@ -1601,6 +1606,9 @@ output formats and methods. Optional: * AMQP (php-pecl-amqp) +* MySQL (php-mysql) + Required for + Symfony\Component\VarDumper\Caster\ResourceCaster::castMysqlLink() # ------------------------------------------------------------------------------ @@ -1636,6 +1644,9 @@ The YAML Component loads and dumps YAML files. %prep %setup -qn %{github_name}-%{github_commit} +%patch0 -p1 +rm -f src/Symfony/Component/HttpFoundation/Request.php.orig + : Remove unnecessary files find src -name '.git*' -delete @@ -2501,6 +2512,10 @@ exit $RET # ############################################################################## %changelog +* Mon Jul 21 2015 Shawn Iwinski - 2.7.2-3 +- Added patch for symfony/psr-http-message-bridge +- Removed php-mysql dependency from var-dumper + * Mon Jul 13 2015 Remi Collet - 2.7.2-2.1 - drop dependency on sqlite3 on EL-5 -- cgit