minor #41626 [HttpFoundation] Handle new tentative return types (derrabus)

This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] Handle new tentative return types

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #41552
| License       | MIT
| Doc PR        | N/A

Commits
-------

1d24bce18f [HttpFoundation] Handle tentative return types
This commit is contained in:
Nicolas Grekas 2021-06-09 16:52:47 +02:00
commit c17ed9ee5d
7 changed files with 39 additions and 9 deletions

View File

@ -41,6 +41,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function close() public function close()
{ {
$result = $this->currentHandler->close(); $result = $this->currentHandler->close();
@ -52,6 +53,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function destroy($sessionId) public function destroy($sessionId)
{ {
$result = $this->currentHandler->destroy($sessionId); $result = $this->currentHandler->destroy($sessionId);
@ -63,6 +65,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function gc($maxlifetime) public function gc($maxlifetime)
{ {
$result = $this->currentHandler->gc($maxlifetime); $result = $this->currentHandler->gc($maxlifetime);
@ -74,6 +77,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function open($savePath, $sessionName) public function open($savePath, $sessionName)
{ {
$result = $this->currentHandler->open($savePath, $sessionName); $result = $this->currentHandler->open($savePath, $sessionName);
@ -85,6 +89,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return string * @return string
*/ */
#[\ReturnTypeWillChange]
public function read($sessionId) public function read($sessionId)
{ {
// No reading from new handler until switch-over // No reading from new handler until switch-over
@ -94,6 +99,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function write($sessionId, $sessionData) public function write($sessionId, $sessionData)
{ {
$result = $this->currentHandler->write($sessionId, $sessionData); $result = $this->currentHandler->write($sessionId, $sessionData);
@ -105,6 +111,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function validateId($sessionId) public function validateId($sessionId)
{ {
// No reading from new handler until switch-over // No reading from new handler until switch-over
@ -114,6 +121,7 @@ class MigratingSessionHandler implements \SessionHandlerInterface, \SessionUpdat
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function updateTimestamp($sessionId, $sessionData) public function updateTimestamp($sessionId, $sessionData)
{ {
$result = $this->currentHandler->updateTimestamp($sessionId, $sessionData); $result = $this->currentHandler->updateTimestamp($sessionId, $sessionData);

View File

@ -21,6 +21,7 @@ class NullSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function close() public function close()
{ {
return true; return true;
@ -29,6 +30,7 @@ class NullSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function validateId($sessionId) public function validateId($sessionId)
{ {
return true; return true;
@ -45,6 +47,7 @@ class NullSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function updateTimestamp($sessionId, $data) public function updateTimestamp($sessionId, $data)
{ {
return true; return true;
@ -69,6 +72,7 @@ class NullSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function gc($maxlifetime) public function gc($maxlifetime)
{ {
return true; return true;

View File

@ -262,6 +262,7 @@ class PdoSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function open($savePath, $sessionName) public function open($savePath, $sessionName)
{ {
$this->sessionExpired = false; $this->sessionExpired = false;
@ -276,6 +277,7 @@ class PdoSessionHandler extends AbstractSessionHandler
/** /**
* @return string * @return string
*/ */
#[\ReturnTypeWillChange]
public function read($sessionId) public function read($sessionId)
{ {
try { try {
@ -290,6 +292,7 @@ class PdoSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function gc($maxlifetime) public function gc($maxlifetime)
{ {
// We delay gc() to close() so that it is executed outside the transactional and blocking read-write process. // We delay gc() to close() so that it is executed outside the transactional and blocking read-write process.
@ -369,6 +372,7 @@ class PdoSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function updateTimestamp($sessionId, $data) public function updateTimestamp($sessionId, $data)
{ {
$expiry = time() + (int) ini_get('session.gc_maxlifetime'); $expiry = time() + (int) ini_get('session.gc_maxlifetime');
@ -393,6 +397,7 @@ class PdoSessionHandler extends AbstractSessionHandler
/** /**
* @return bool * @return bool
*/ */
#[\ReturnTypeWillChange]
public function close() public function close()
{ {
$this->commit(); $this->commit();

View File

@ -75,15 +75,14 @@ class MigratingSessionHandlerTest extends TestCase
$this->currentHandler->expects($this->once()) $this->currentHandler->expects($this->once())
->method('gc') ->method('gc')
->with($maxlifetime) ->with($maxlifetime)
->willReturn(true); ->willReturn(1);
$this->writeOnlyHandler->expects($this->once()) $this->writeOnlyHandler->expects($this->once())
->method('gc') ->method('gc')
->with($maxlifetime) ->with($maxlifetime)
->willReturn(false); ->willReturn(false);
$result = $this->dualHandler->gc($maxlifetime); $this->assertSame(1, $this->dualHandler->gc($maxlifetime));
$this->assertTrue($result);
} }
public function testOpen() public function testOpen()

View File

@ -371,6 +371,10 @@ class MockPdo extends \PDO
$this->errorMode = null !== $errorMode ?: \PDO::ERRMODE_EXCEPTION; $this->errorMode = null !== $errorMode ?: \PDO::ERRMODE_EXCEPTION;
} }
/**
* @return mixed
*/
#[\ReturnTypeWillChange]
public function getAttribute($attribute) public function getAttribute($attribute)
{ {
if (\PDO::ATTR_ERRMODE === $attribute) { if (\PDO::ATTR_ERRMODE === $attribute) {
@ -384,6 +388,10 @@ class MockPdo extends \PDO
return parent::getAttribute($attribute); return parent::getAttribute($attribute);
} }
/**
* @return false|\PDOStatement
*/
#[\ReturnTypeWillChange]
public function prepare($statement, $driverOptions = []) public function prepare($statement, $driverOptions = [])
{ {
return \is_callable($this->prepareResult) return \is_callable($this->prepareResult)
@ -391,11 +399,13 @@ class MockPdo extends \PDO
: $this->prepareResult; : $this->prepareResult;
} }
public function beginTransaction() public function beginTransaction(): bool
{ {
return true;
} }
public function rollBack() public function rollBack(): bool
{ {
return true;
} }
} }

View File

@ -181,9 +181,9 @@ class StrictSessionHandlerTest extends TestCase
{ {
$handler = $this->createMock(\SessionHandlerInterface::class); $handler = $this->createMock(\SessionHandlerInterface::class);
$handler->expects($this->once())->method('gc') $handler->expects($this->once())->method('gc')
->with(123)->willReturn(true); ->with(123)->willReturn(1);
$proxy = new StrictSessionHandler($handler); $proxy = new StrictSessionHandler($handler);
$this->assertTrue($proxy->gc(123)); $this->assertSame(1, $proxy->gc(123));
} }
} }

View File

@ -93,7 +93,9 @@ class SessionHandlerProxyTest extends TestCase
public function testRead() public function testRead()
{ {
$this->mock->expects($this->once()) $this->mock->expects($this->once())
->method('read'); ->method('read')
->willReturn('foo')
;
$this->proxy->read('id'); $this->proxy->read('id');
} }
@ -117,7 +119,9 @@ class SessionHandlerProxyTest extends TestCase
public function testGc() public function testGc()
{ {
$this->mock->expects($this->once()) $this->mock->expects($this->once())
->method('gc'); ->method('gc')
->willReturn(1)
;
$this->proxy->gc(86400); $this->proxy->gc(86400);
} }