🔧
This commit is contained in:
@@ -40,7 +40,7 @@ class Session implements FlashBagAwareSessionInterface, \IteratorAggregate, \Cou
|
||||
private int $usageIndex = 0;
|
||||
private ?\Closure $usageReporter;
|
||||
|
||||
public function __construct(SessionStorageInterface $storage = null, AttributeBagInterface $attributes = null, FlashBagInterface $flashes = null, callable $usageReporter = null)
|
||||
public function __construct(?SessionStorageInterface $storage = null, ?AttributeBagInterface $attributes = null, ?FlashBagInterface $flashes = null, ?callable $usageReporter = null)
|
||||
{
|
||||
$this->storage = $storage ?? new NativeSessionStorage();
|
||||
$this->usageReporter = null === $usageReporter ? null : $usageReporter(...);
|
||||
@@ -151,14 +151,14 @@ class Session implements FlashBagAwareSessionInterface, \IteratorAggregate, \Cou
|
||||
return true;
|
||||
}
|
||||
|
||||
public function invalidate(int $lifetime = null): bool
|
||||
public function invalidate(?int $lifetime = null): bool
|
||||
{
|
||||
$this->storage->clear();
|
||||
|
||||
return $this->migrate(true, $lifetime);
|
||||
}
|
||||
|
||||
public function migrate(bool $destroy = false, int $lifetime = null): bool
|
||||
public function migrate(bool $destroy = false, ?int $lifetime = null): bool
|
||||
{
|
||||
return $this->storage->regenerate($destroy, $lifetime);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ class SessionFactory implements SessionFactoryInterface
|
||||
private SessionStorageFactoryInterface $storageFactory;
|
||||
private ?\Closure $usageReporter;
|
||||
|
||||
public function __construct(RequestStack $requestStack, SessionStorageFactoryInterface $storageFactory, callable $usageReporter = null)
|
||||
public function __construct(RequestStack $requestStack, SessionStorageFactoryInterface $storageFactory, ?callable $usageReporter = null)
|
||||
{
|
||||
$this->requestStack = $requestStack;
|
||||
$this->storageFactory = $storageFactory;
|
||||
|
||||
@@ -62,7 +62,7 @@ interface SessionInterface
|
||||
* to expire with browser session. Time is in seconds, and is
|
||||
* not a Unix timestamp.
|
||||
*/
|
||||
public function invalidate(int $lifetime = null): bool;
|
||||
public function invalidate(?int $lifetime = null): bool;
|
||||
|
||||
/**
|
||||
* Migrates the current session to a new session id while maintaining all
|
||||
@@ -74,7 +74,7 @@ interface SessionInterface
|
||||
* to expire with browser session. Time is in seconds, and is
|
||||
* not a Unix timestamp.
|
||||
*/
|
||||
public function migrate(bool $destroy = false, int $lifetime = null): bool;
|
||||
public function migrate(bool $destroy = false, ?int $lifetime = null): bool;
|
||||
|
||||
/**
|
||||
* Force the session to be saved and closed.
|
||||
|
||||
@@ -28,7 +28,7 @@ class NativeFileSessionHandler extends \SessionHandler
|
||||
* @throws \InvalidArgumentException On invalid $savePath
|
||||
* @throws \RuntimeException When failing to create the save directory
|
||||
*/
|
||||
public function __construct(string $savePath = null)
|
||||
public function __construct(?string $savePath = null)
|
||||
{
|
||||
$baseDir = $savePath ??= \ini_get('session.save_path');
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ class PdoSessionHandler extends AbstractSessionHandler
|
||||
*
|
||||
* @throws \InvalidArgumentException When PDO error mode is not PDO::ERRMODE_EXCEPTION
|
||||
*/
|
||||
public function __construct(#[\SensitiveParameter] \PDO|string $pdoOrDsn = null, #[\SensitiveParameter] array $options = [])
|
||||
public function __construct(#[\SensitiveParameter] \PDO|string|null $pdoOrDsn = null, #[\SensitiveParameter] array $options = [])
|
||||
{
|
||||
if ($pdoOrDsn instanceof \PDO) {
|
||||
if (\PDO::ERRMODE_EXCEPTION !== $pdoOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) {
|
||||
@@ -181,7 +181,7 @@ class PdoSessionHandler extends AbstractSessionHandler
|
||||
/**
|
||||
* Adds the Table to the Schema if it doesn't exist.
|
||||
*/
|
||||
public function configureSchema(Schema $schema, \Closure $isSameDatabase = null): void
|
||||
public function configureSchema(Schema $schema, ?\Closure $isSameDatabase = null): void
|
||||
{
|
||||
if ($schema->hasTable($this->table) || ($isSameDatabase && !$isSameDatabase($this->getConnection()->exec(...)))) {
|
||||
return;
|
||||
|
||||
@@ -88,7 +88,7 @@ class MetadataBag implements SessionBagInterface
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function stampNew(int $lifetime = null)
|
||||
public function stampNew(?int $lifetime = null)
|
||||
{
|
||||
$this->stampCreated($lifetime);
|
||||
}
|
||||
@@ -139,7 +139,7 @@ class MetadataBag implements SessionBagInterface
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
private function stampCreated(int $lifetime = null): void
|
||||
private function stampCreated(?int $lifetime = null): void
|
||||
{
|
||||
$timeStamp = time();
|
||||
$this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp;
|
||||
|
||||
@@ -62,7 +62,7 @@ class MockArraySessionStorage implements SessionStorageInterface
|
||||
*/
|
||||
protected $bags = [];
|
||||
|
||||
public function __construct(string $name = 'MOCKSESSID', MetadataBag $metaBag = null)
|
||||
public function __construct(string $name = 'MOCKSESSID', ?MetadataBag $metaBag = null)
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->setMetadataBag($metaBag);
|
||||
@@ -91,7 +91,7 @@ class MockArraySessionStorage implements SessionStorageInterface
|
||||
return true;
|
||||
}
|
||||
|
||||
public function regenerate(bool $destroy = false, int $lifetime = null): bool
|
||||
public function regenerate(bool $destroy = false, ?int $lifetime = null): bool
|
||||
{
|
||||
if (!$this->started) {
|
||||
$this->start();
|
||||
@@ -192,7 +192,7 @@ class MockArraySessionStorage implements SessionStorageInterface
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function setMetadataBag(MetadataBag $bag = null)
|
||||
public function setMetadataBag(?MetadataBag $bag = null)
|
||||
{
|
||||
if (1 > \func_num_args()) {
|
||||
trigger_deprecation('symfony/http-foundation', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__);
|
||||
@@ -216,7 +216,7 @@ class MockArraySessionStorage implements SessionStorageInterface
|
||||
*/
|
||||
protected function generateId(): string
|
||||
{
|
||||
return hash('sha256', uniqid('ss_mock_', true));
|
||||
return bin2hex(random_bytes(16));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,7 +30,7 @@ class MockFileSessionStorage extends MockArraySessionStorage
|
||||
/**
|
||||
* @param string|null $savePath Path of directory to save session files
|
||||
*/
|
||||
public function __construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null)
|
||||
public function __construct(?string $savePath = null, string $name = 'MOCKSESSID', ?MetadataBag $metaBag = null)
|
||||
{
|
||||
$savePath ??= sys_get_temp_dir();
|
||||
|
||||
@@ -60,7 +60,7 @@ class MockFileSessionStorage extends MockArraySessionStorage
|
||||
return true;
|
||||
}
|
||||
|
||||
public function regenerate(bool $destroy = false, int $lifetime = null): bool
|
||||
public function regenerate(bool $destroy = false, ?int $lifetime = null): bool
|
||||
{
|
||||
if (!$this->started) {
|
||||
$this->start();
|
||||
|
||||
@@ -28,7 +28,7 @@ class MockFileSessionStorageFactory implements SessionStorageFactoryInterface
|
||||
/**
|
||||
* @see MockFileSessionStorage constructor.
|
||||
*/
|
||||
public function __construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null)
|
||||
public function __construct(?string $savePath = null, string $name = 'MOCKSESSID', ?MetadataBag $metaBag = null)
|
||||
{
|
||||
$this->savePath = $savePath;
|
||||
$this->name = $name;
|
||||
|
||||
@@ -89,7 +89,7 @@ class NativeSessionStorage implements SessionStorageInterface
|
||||
* trans_sid_hosts, $_SERVER['HTTP_HOST']
|
||||
* trans_sid_tags, "a=href,area=href,frame=src,form="
|
||||
*/
|
||||
public function __construct(array $options = [], AbstractProxy|\SessionHandlerInterface $handler = null, MetadataBag $metaBag = null)
|
||||
public function __construct(array $options = [], AbstractProxy|\SessionHandlerInterface|null $handler = null, ?MetadataBag $metaBag = null)
|
||||
{
|
||||
if (!\extension_loaded('session')) {
|
||||
throw new \LogicException('PHP extension "session" is required.');
|
||||
@@ -204,7 +204,7 @@ class NativeSessionStorage implements SessionStorageInterface
|
||||
$this->saveHandler->setName($name);
|
||||
}
|
||||
|
||||
public function regenerate(bool $destroy = false, int $lifetime = null): bool
|
||||
public function regenerate(bool $destroy = false, ?int $lifetime = null): bool
|
||||
{
|
||||
// Cannot regenerate the session ID for non-active sessions.
|
||||
if (\PHP_SESSION_ACTIVE !== session_status()) {
|
||||
@@ -317,7 +317,7 @@ class NativeSessionStorage implements SessionStorageInterface
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function setMetadataBag(MetadataBag $metaBag = null)
|
||||
public function setMetadataBag(?MetadataBag $metaBag = null)
|
||||
{
|
||||
if (1 > \func_num_args()) {
|
||||
trigger_deprecation('symfony/http-foundation', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__);
|
||||
@@ -396,7 +396,7 @@ class NativeSessionStorage implements SessionStorageInterface
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function setSaveHandler(AbstractProxy|\SessionHandlerInterface $saveHandler = null)
|
||||
public function setSaveHandler(AbstractProxy|\SessionHandlerInterface|null $saveHandler = null)
|
||||
{
|
||||
if (1 > \func_num_args()) {
|
||||
trigger_deprecation('symfony/http-foundation', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__);
|
||||
@@ -429,7 +429,7 @@ class NativeSessionStorage implements SessionStorageInterface
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function loadSession(array &$session = null)
|
||||
protected function loadSession(?array &$session = null)
|
||||
{
|
||||
if (null === $session) {
|
||||
$session = &$_SESSION;
|
||||
|
||||
@@ -30,7 +30,7 @@ class NativeSessionStorageFactory implements SessionStorageFactoryInterface
|
||||
/**
|
||||
* @see NativeSessionStorage constructor.
|
||||
*/
|
||||
public function __construct(array $options = [], AbstractProxy|\SessionHandlerInterface $handler = null, MetadataBag $metaBag = null, bool $secure = false)
|
||||
public function __construct(array $options = [], AbstractProxy|\SessionHandlerInterface|null $handler = null, ?MetadataBag $metaBag = null, bool $secure = false)
|
||||
{
|
||||
$this->options = $options;
|
||||
$this->handler = $handler;
|
||||
|
||||
@@ -20,7 +20,7 @@ use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy;
|
||||
*/
|
||||
class PhpBridgeSessionStorage extends NativeSessionStorage
|
||||
{
|
||||
public function __construct(AbstractProxy|\SessionHandlerInterface $handler = null, MetadataBag $metaBag = null)
|
||||
public function __construct(AbstractProxy|\SessionHandlerInterface|null $handler = null, ?MetadataBag $metaBag = null)
|
||||
{
|
||||
if (!\extension_loaded('session')) {
|
||||
throw new \LogicException('PHP extension "session" is required.');
|
||||
|
||||
@@ -26,7 +26,7 @@ class PhpBridgeSessionStorageFactory implements SessionStorageFactoryInterface
|
||||
private ?MetadataBag $metaBag;
|
||||
private bool $secure;
|
||||
|
||||
public function __construct(AbstractProxy|\SessionHandlerInterface $handler = null, MetadataBag $metaBag = null, bool $secure = false)
|
||||
public function __construct(AbstractProxy|\SessionHandlerInterface|null $handler = null, ?MetadataBag $metaBag = null, bool $secure = false)
|
||||
{
|
||||
$this->handler = $handler;
|
||||
$this->metaBag = $metaBag;
|
||||
|
||||
@@ -84,7 +84,7 @@ interface SessionStorageInterface
|
||||
*
|
||||
* @throws \RuntimeException If an error occurs while regenerating this storage
|
||||
*/
|
||||
public function regenerate(bool $destroy = false, int $lifetime = null): bool;
|
||||
public function regenerate(bool $destroy = false, ?int $lifetime = null): bool;
|
||||
|
||||
/**
|
||||
* Force the session to be saved and closed.
|
||||
|
||||
Reference in New Issue
Block a user