From 6b903a9986a32422f59013023cec0dc9519aa9c4 Mon Sep 17 00:00:00 2001 From: Thomas Vargiu Date: Wed, 17 Oct 2018 12:57:15 +0200 Subject: [PATCH 1/2] Deprecated multiple behavior methods --- CHANGELOG.md | 6 +++++- src/Request.php | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b97e65b8ae..d7298d6d34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,11 @@ All notable changes to this project will be documented in this file, in reverse ### Deprecated -- Nothing. +- `Zend\Http\Request::getHeader()` is deprecated +- `Zend\Http\Request::getHeaders()` with arguments is deprecated +- `Zend\Http\Request::getQuery()` with arguments is deprecated +- `Zend\Http\Request::getPost()` with arguments is deprecated +- `Zend\Http\Request::getFiles()` with arguments is deprecated ### Removed diff --git a/src/Request.php b/src/Request.php index 9531fc5111..cff392174a 100644 --- a/src/Request.php +++ b/src/Request.php @@ -274,6 +274,11 @@ public function getQuery($name = null, $default = null) return $this->queryParams; } + trigger_error( + 'Getting specific query parameter is deprecated', + E_USER_DEPRECATED + ); + return $this->queryParams->get($name, $default); } @@ -307,6 +312,11 @@ public function getPost($name = null, $default = null) return $this->postParams; } + trigger_error( + 'Getting specific post parameter is deprecated', + E_USER_DEPRECATED + ); + return $this->postParams->get($name, $default); } @@ -351,6 +361,11 @@ public function getFiles($name = null, $default = null) return $this->fileParams; } + trigger_error( + 'Getting specific file parameter is deprecated', + E_USER_DEPRECATED + ); + return $this->fileParams->get($name, $default); } @@ -373,6 +388,11 @@ public function getHeaders($name = null, $default = false) return $this->headers; } + trigger_error( + 'Getting specific header is deprecated', + E_USER_DEPRECATED + ); + if ($this->headers->has($name)) { return $this->headers->get($name); } @@ -390,6 +410,16 @@ public function getHeaders($name = null, $default = false) */ public function getHeader($name, $default = false) { + trigger_error( + sprintf( + '%s::%s is deprecated Please get it from %s::getHeaders().', + __CLASS__, + __METHOD__, + __CLASS__ + ), + E_USER_DEPRECATED + ); + return $this->getHeaders($name, $default); } From a42ea22466314191b56eb2b6ac315fc248e4d579 Mon Sep 17 00:00:00 2001 From: Thomas Vargiu Date: Wed, 17 Oct 2018 13:19:22 +0200 Subject: [PATCH 2/2] Ignore E_USER_DEPRECATED errors where expected --- test/PhpEnvironment/RequestTest.php | 10 ++++++++++ test/RequestTest.php | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/test/PhpEnvironment/RequestTest.php b/test/PhpEnvironment/RequestTest.php index f8e8594d3a..9c9cdc3c56 100644 --- a/test/PhpEnvironment/RequestTest.php +++ b/test/PhpEnvironment/RequestTest.php @@ -56,6 +56,8 @@ public function tearDown() $_SERVER = $this->originalEnvironment['server']; $_ENV = $this->originalEnvironment['env']; $_FILES = $this->originalEnvironment['files']; + + \error_reporting(E_ALL); } /** @@ -699,6 +701,8 @@ public function testParameterRetrievalDefaultValue() $request->setEnv($p); $default = 15; + + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame($default, $request->getQuery('baz', $default)); $this->assertSame($default, $request->getPost('baz', $default)); $this->assertSame($default, $request->getFiles('baz', $default)); @@ -706,6 +710,7 @@ public function testParameterRetrievalDefaultValue() $this->assertSame($default, $request->getEnv('baz', $default)); $this->assertSame($default, $request->getHeaders('baz', $default)); $this->assertSame($default, $request->getHeader('baz', $default)); + \error_reporting(E_ALL); } public function testRetrievingASingleValueForParameters() @@ -720,11 +725,13 @@ public function testRetrievingASingleValueForParameters() $request->setServer($p); $request->setEnv($p); + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame('bar', $request->getQuery('foo')); $this->assertSame('bar', $request->getPost('foo')); $this->assertSame('bar', $request->getFiles('foo')); $this->assertSame('bar', $request->getServer('foo')); $this->assertSame('bar', $request->getEnv('foo')); + \error_reporting(E_ALL); $headers = new Headers(); $h = new GenericHeader('foo', 'bar'); @@ -733,7 +740,10 @@ public function testRetrievingASingleValueForParameters() $request->setHeaders($headers); $this->assertSame($headers, $request->getHeaders()); $this->assertSame($h, $request->getHeaders()->get('foo')); + + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame($h, $request->getHeader('foo')); + \error_reporting(E_ALL); } /** diff --git a/test/RequestTest.php b/test/RequestTest.php index dd83837667..f42f9bb6d1 100644 --- a/test/RequestTest.php +++ b/test/RequestTest.php @@ -20,6 +20,13 @@ class RequestTest extends TestCase { + protected function tearDown() + { + parent::tearDown(); + + \error_reporting(E_ALL); + } + public function testRequestFromStringFactoryCreatesValidRequest() { $string = "GET /foo?myparam=myvalue HTTP/1.1\r\n\r\nSome Content"; @@ -67,9 +74,11 @@ public function testRetrievingASingleValueForParameters() $request->setPost($p); $request->setFiles($p); + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame('bar', $request->getQuery('foo')); $this->assertSame('bar', $request->getPost('foo')); $this->assertSame('bar', $request->getFiles('foo')); + \error_reporting(E_ALL); $headers = new Headers(); $h = new GenericHeader('foo', 'bar'); @@ -78,7 +87,10 @@ public function testRetrievingASingleValueForParameters() $request->setHeaders($headers); $this->assertSame($headers, $request->getHeaders()); $this->assertSame($h, $request->getHeaders()->get('foo')); + + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame($h, $request->getHeader('foo')); + \error_reporting(E_ALL); } public function testParameterRetrievalDefaultValue() @@ -92,11 +104,14 @@ public function testParameterRetrievalDefaultValue() $request->setFiles($p); $default = 15; + + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame($default, $request->getQuery('baz', $default)); $this->assertSame($default, $request->getPost('baz', $default)); $this->assertSame($default, $request->getFiles('baz', $default)); $this->assertSame($default, $request->getHeaders('baz', $default)); $this->assertSame($default, $request->getHeader('baz', $default)); + \error_reporting(E_ALL); } public function testRequestPersistsRawBody() @@ -342,11 +357,17 @@ public function testGetHeadersDoesNotRaiseExceptionForInvalidHeaderLines() $headers = $request->getHeaders(); $this->assertFalse($headers->has('User-Agent')); $this->assertFalse($headers->get('User-Agent')); + + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame('bar-baz', $request->getHeader('User-Agent', 'bar-baz')); + \error_reporting(E_ALL); $this->assertTrue($headers->has('useragent')); $this->assertInstanceOf(GenericHeader::class, $headers->get('useragent')); $this->assertSame('h4ckerbot', $headers->get('useragent')->getFieldValue()); + + \error_reporting(E_ALL ^ \E_USER_DEPRECATED); $this->assertSame('h4ckerbot', $request->getHeader('useragent')->getFieldValue()); + \error_reporting(E_ALL); } }