[ticket/17496] Fix Implicitly marking parameters as nullable PHP deprecations

Also use union types consistently instead of question marks.
Fixed with php-cs-fixer.

PHPBB-17496
This commit is contained in:
rxu 2025-04-15 12:14:21 +07:00
parent bdbd0be548
commit 7d1ae5bf19
No known key found for this signature in database
GPG key ID: 955F0567380E586A
64 changed files with 113 additions and 113 deletions

View file

@ -130,7 +130,7 @@ function phpbb_gmgetdate($time = false)
* *
* @return array|string data array if $string_only is false * @return array|string data array if $string_only is false
*/ */
function get_formatted_filesize($value, bool $string_only = true, array $allowed_units = null) function get_formatted_filesize($value, bool $string_only = true, array|null $allowed_units = null)
{ {
global $user; global $user;
@ -253,7 +253,7 @@ function still_on_time($extra_time = 15)
* @return mixed Boolean (true, false) if comparison operator is specified. * @return mixed Boolean (true, false) if comparison operator is specified.
* Integer (-1, 0, 1) otherwise. * Integer (-1, 0, 1) otherwise.
*/ */
function phpbb_version_compare(string $version1, string $version2, string $operator = null) function phpbb_version_compare(string $version1, string $version2, string|null $operator = null)
{ {
$version1 = strtolower($version1); $version1 = strtolower($version1);
$version2 = strtolower($version2); $version2 = strtolower($version2);

View file

@ -215,7 +215,7 @@ function adm_back_link($u_action)
* *
* @return array * @return array
*/ */
function build_select(array $options_ary, int|string|bool $option_default = false): array function build_select(array $options_ary, bool|int|string $option_default = false): array
{ {
global $language; global $language;

View file

@ -82,7 +82,7 @@ abstract class driver implements \phpbb\avatar\driver\driver_interface
* @param \phpbb\path_helper $path_helper phpBB path helper * @param \phpbb\path_helper $path_helper phpBB path helper
* @param \phpbb\cache\driver\driver_interface|null $cache Cache driver * @param \phpbb\cache\driver\driver_interface|null $cache Cache driver
*/ */
public function __construct(\phpbb\config\config $config, \FastImageSize\FastImageSize $imagesize, $phpbb_root_path, $php_ext, \phpbb\path_helper $path_helper, \phpbb\cache\driver\driver_interface $cache = null) public function __construct(\phpbb\config\config $config, \FastImageSize\FastImageSize $imagesize, $phpbb_root_path, $php_ext, \phpbb\path_helper $path_helper, \phpbb\cache\driver\driver_interface|null $cache = null)
{ {
$this->config = $config; $this->config = $config;
$this->imagesize = $imagesize; $this->imagesize = $imagesize;

View file

@ -28,7 +28,7 @@ class email extends base
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function get_user_column(): ?string public function get_user_column(): string|null
{ {
return 'user_email'; return 'user_email';
} }

View file

@ -31,7 +31,7 @@ class ip extends base
/** /**
* @inheritDoc * @inheritDoc
*/ */
public function get_user_column(): ?string public function get_user_column(): string|null
{ {
return null; return null;
} }

View file

@ -33,7 +33,7 @@ interface type_interface
* *
* @return string|null * @return string|null
*/ */
public function get_user_column(): ?string; public function get_user_column(): string|null;
/** /**
* Sets a user object to the ban type to have it excluded * Sets a user object to the ban type to have it excluded

View file

@ -48,7 +48,7 @@ class class_loader
* @param string $php_ext The file extension for PHP files * @param string $php_ext The file extension for PHP files
* @param \phpbb\cache\driver\driver_interface|null $cache An implementation of the phpBB cache interface. * @param \phpbb\cache\driver\driver_interface|null $cache An implementation of the phpBB cache interface.
*/ */
public function __construct($namespace, $path, $php_ext = 'php', \phpbb\cache\driver\driver_interface $cache = null) public function __construct($namespace, $path, $php_ext = 'php', \phpbb\cache\driver\driver_interface|null $cache = null)
{ {
if ($namespace[0] !== '\\') if ($namespace[0] !== '\\')
{ {
@ -69,7 +69,7 @@ class class_loader
* *
* @param \phpbb\cache\driver\driver_interface|null $cache An implementation of the phpBB cache interface. * @param \phpbb\cache\driver\driver_interface|null $cache An implementation of the phpBB cache interface.
*/ */
public function set_cache(\phpbb\cache\driver\driver_interface $cache = null) public function set_cache(\phpbb\cache\driver\driver_interface|null $cache = null)
{ {
if ($cache) if ($cache)
{ {

View file

@ -29,7 +29,7 @@ class runtime_exception extends base
* @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining. * @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining.
* @param integer $code The Exception code. * @param integer $code The Exception code.
*/ */
public function __construct($prefix, $message = '', array $parameters = [], \Exception $previous = null, $code = 0) public function __construct($prefix, $message = '', array $parameters = [], \Exception|null $previous = null, $code = 0)
{ {
parent::__construct($prefix . $message, $parameters, $previous, $code); parent::__construct($prefix . $message, $parameters, $previous, $code);
} }

View file

@ -68,7 +68,7 @@ class extension_manager extends manager
* @param string $root_path phpBB root path * @param string $root_path phpBB root path
* @param config|null $config Config object * @param config|null $config Config object
*/ */
public function __construct(installer $installer, driver_interface $cache, ext_manager $extension_manager, filesystem $filesystem, $package_type, $exception_prefix, $root_path, config $config = null) public function __construct(installer $installer, driver_interface $cache, ext_manager $extension_manager, filesystem $filesystem, $package_type, $exception_prefix, $root_path, config|null $config = null)
{ {
$this->extension_manager = $extension_manager; $this->extension_manager = $extension_manager;
$this->filesystem = $filesystem; $this->filesystem = $filesystem;
@ -86,7 +86,7 @@ class extension_manager extends manager
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function pre_install(array $packages, IOInterface $io = null) public function pre_install(array $packages, IOInterface|null $io = null)
{ {
$installed_manually = array_intersect(array_keys($this->extension_manager->all_available()), array_keys($packages)); $installed_manually = array_intersect(array_keys($this->extension_manager->all_available()), array_keys($packages));
if (count($installed_manually) !== 0) if (count($installed_manually) !== 0)
@ -98,7 +98,7 @@ class extension_manager extends manager
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function post_install(array $packages, IOInterface $io = null) public function post_install(array $packages, IOInterface|null $io = null)
{ {
if ($this->enable_on_install) if ($this->enable_on_install)
{ {
@ -127,7 +127,7 @@ class extension_manager extends manager
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function pre_update(array $packages, IOInterface $io = null) protected function pre_update(array $packages, IOInterface|null $io = null)
{ {
/** @psalm-suppress InvalidArgument */ /** @psalm-suppress InvalidArgument */
$io->writeError([['DISABLING_EXTENSIONS', [], 1]]); $io->writeError([['DISABLING_EXTENSIONS', [], 1]]);
@ -158,7 +158,7 @@ class extension_manager extends manager
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
protected function post_update(array $packages, IOInterface $io = null) protected function post_update(array $packages, IOInterface|null $io = null)
{ {
/** @psalm-suppress InvalidArgument */ /** @psalm-suppress InvalidArgument */
$io->writeError([['ENABLING_EXTENSIONS', [], 1]]); $io->writeError([['ENABLING_EXTENSIONS', [], 1]]);
@ -184,7 +184,7 @@ class extension_manager extends manager
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function remove(array $packages, IOInterface $io = null) public function remove(array $packages, IOInterface|null $io = null)
{ {
$packages = $this->normalize_version($packages); $packages = $this->normalize_version($packages);
@ -200,7 +200,7 @@ class extension_manager extends manager
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function pre_remove(array $packages, IOInterface $io = null) public function pre_remove(array $packages, IOInterface|null $io = null)
{ {
if ($this->purge_on_remove) if ($this->purge_on_remove)
{ {

View file

@ -101,7 +101,7 @@ class installer
* @param request $request phpBB request object * @param request $request phpBB request object
* @param config|null $config Config object * @param config|null $config Config object
*/ */
public function __construct($root_path, filesystem $filesystem, request $request, config $config = null) public function __construct($root_path, filesystem $filesystem, request $request, config|null $config = null)
{ {
if ($config) if ($config)
{ {
@ -135,7 +135,7 @@ class installer
* *
* @throws runtime_exception * @throws runtime_exception
*/ */
public function install(array $packages, $whitelist, IOInterface $io = null) public function install(array $packages, $whitelist, IOInterface|null $io = null)
{ {
$this->wrap(function() use ($packages, $whitelist, $io) { $this->wrap(function() use ($packages, $whitelist, $io) {
$this->do_install($packages, $whitelist, $io); $this->do_install($packages, $whitelist, $io);
@ -155,7 +155,7 @@ class installer
* @throws runtime_exception * @throws runtime_exception
* @throws JsonValidationException * @throws JsonValidationException
*/ */
protected function do_install(array $packages, $whitelist, io\io_interface $io = null) protected function do_install(array $packages, $whitelist, io\io_interface|null $io = null)
{ {
if (!$io) if (!$io)
{ {
@ -232,7 +232,7 @@ class installer
* @return Composer|PartialComposer * @return Composer|PartialComposer
* @throws JsonValidationException * @throws JsonValidationException
*/ */
protected function get_composer(?string $config_file): PartialComposer protected function get_composer(string|null $config_file): PartialComposer
{ {
static $composer_factory; static $composer_factory;
if (!$composer_factory) if (!$composer_factory)

View file

@ -46,7 +46,7 @@ class html_output_formatter extends \Composer\Console\HtmlOutputFormatter
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function format(?string $message): ?string public function format(string|null $message): string|null
{ {
$formatted = parent::format($message); $formatted = parent::format($message);

View file

@ -28,7 +28,7 @@ class web_io extends BufferIO implements io_interface
* @param int $verbosity Verbosity level * @param int $verbosity Verbosity level
* @param OutputFormatterInterface|null $formatter Output formatter * @param OutputFormatterInterface|null $formatter Output formatter
*/ */
public function __construct(language $language, $input = '', $verbosity = StreamOutput::VERBOSITY_NORMAL, OutputFormatterInterface $formatter = null) public function __construct(language $language, $input = '', $verbosity = StreamOutput::VERBOSITY_NORMAL, OutputFormatterInterface|null $formatter = null)
{ {
$this->language = $language; $this->language = $language;

View file

@ -74,7 +74,7 @@ class manager implements manager_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function install(array $packages, IOInterface $io = null) public function install(array $packages, IOInterface|null $io = null)
{ {
$packages = $this->normalize_version($packages); $packages = $this->normalize_version($packages);
@ -103,7 +103,7 @@ class manager implements manager_interface
* Each entry may be a name or an array associating a version constraint to a name * Each entry may be a name or an array associating a version constraint to a name
* @param IOInterface|null $io IO object used for the output * @param IOInterface|null $io IO object used for the output
*/ */
protected function pre_install(array $packages, IOInterface $io = null) protected function pre_install(array $packages, IOInterface|null $io = null)
{ {
} }
@ -114,14 +114,14 @@ class manager implements manager_interface
* Each entry may be a name or an array associating a version constraint to a name * Each entry may be a name or an array associating a version constraint to a name
* @param IOInterface|null $io IO object used for the output * @param IOInterface|null $io IO object used for the output
*/ */
protected function post_install(array $packages, IOInterface $io = null) protected function post_install(array $packages, IOInterface|null $io = null)
{ {
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function update(array $packages, IOInterface $io = null) public function update(array $packages, IOInterface|null $io = null)
{ {
$packages = $this->normalize_version($packages); $packages = $this->normalize_version($packages);
@ -148,7 +148,7 @@ class manager implements manager_interface
* Each entry may be a name or an array associating a version constraint to a name * Each entry may be a name or an array associating a version constraint to a name
* @param IOInterface|null $io IO object used for the output * @param IOInterface|null $io IO object used for the output
*/ */
protected function pre_update(array $packages, IOInterface $io = null) protected function pre_update(array $packages, IOInterface|null $io = null)
{ {
} }
@ -159,14 +159,14 @@ class manager implements manager_interface
* Each entry may be a name or an array associating a version constraint to a name * Each entry may be a name or an array associating a version constraint to a name
* @param IOInterface|null $io IO object used for the output * @param IOInterface|null $io IO object used for the output
*/ */
protected function post_update(array $packages, IOInterface $io = null) protected function post_update(array $packages, IOInterface|null $io = null)
{ {
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function remove(array $packages, IOInterface $io = null) public function remove(array $packages, IOInterface|null $io = null)
{ {
$packages = $this->normalize_version($packages); $packages = $this->normalize_version($packages);
@ -195,7 +195,7 @@ class manager implements manager_interface
* Each entry may be a name or an array associating a version constraint to a name * Each entry may be a name or an array associating a version constraint to a name
* @param IOInterface|null $io IO object used for the output * @param IOInterface|null $io IO object used for the output
*/ */
protected function pre_remove(array $packages, IOInterface $io = null) protected function pre_remove(array $packages, IOInterface|null $io = null)
{ {
} }
@ -206,7 +206,7 @@ class manager implements manager_interface
* Each entry may be a name or an array associating a version constraint to a name * Each entry may be a name or an array associating a version constraint to a name
* @param IOInterface|null $io IO object used for the output * @param IOInterface|null $io IO object used for the output
*/ */
protected function post_remove(array $packages, IOInterface $io = null) protected function post_remove(array $packages, IOInterface|null $io = null)
{ {
} }

View file

@ -30,7 +30,7 @@ interface manager_interface
* *
* @throws runtime_exception * @throws runtime_exception
*/ */
public function install(array $packages, IOInterface $io = null); public function install(array $packages, IOInterface|null $io = null);
/** /**
* Updates or installs a set of packages * Updates or installs a set of packages
@ -41,7 +41,7 @@ interface manager_interface
* *
* @throws runtime_exception * @throws runtime_exception
*/ */
public function update(array $packages, IOInterface $io = null); public function update(array $packages, IOInterface|null $io = null);
/** /**
* Removes a set of packages * Removes a set of packages
@ -52,7 +52,7 @@ interface manager_interface
* *
* @throws runtime_exception * @throws runtime_exception
*/ */
public function remove(array $packages, IOInterface $io = null); public function remove(array $packages, IOInterface|null $io = null);
/** /**
* Tells whether or not a package is managed by Composer. * Tells whether or not a package is managed by Composer.

View file

@ -53,7 +53,7 @@ class resolver implements ControllerResolverInterface
* @param string $phpbb_root_path Relative path to phpBB root * @param string $phpbb_root_path Relative path to phpBB root
* @param \phpbb\template\template|null $template * @param \phpbb\template\template|null $template
*/ */
public function __construct(ContainerInterface $container, $phpbb_root_path, \phpbb\template\template $template = null) public function __construct(ContainerInterface $container, $phpbb_root_path, \phpbb\template\template|null $template = null)
{ {
$this->container = $container; $this->container = $container;
$this->template = $template; $this->template = $template;

View file

@ -42,7 +42,7 @@ class datetime extends \DateTime
* @param string $time String in a format accepted by strtotime(). * @param string $time String in a format accepted by strtotime().
* @param \DateTimeZone|null $timezone Time zone of the time. * @param \DateTimeZone|null $timezone Time zone of the time.
*/ */
public function __construct($user, $time = 'now', \DateTimeZone $timezone = null) public function __construct($user, $time = 'now', \DateTimeZone|null $timezone = null)
{ {
$this->user = $user; $this->user = $user;
$timezone = $timezone ?: $this->user->timezone; $timezone = $timezone ?: $this->user->timezone;

View file

@ -73,10 +73,10 @@ class connection_factory
public static function get_connection_from_params( public static function get_connection_from_params(
string $driver, string $driver,
string $host, string $host,
?string $user = null, string|null $user = null,
?string $password = null, string|null $password = null,
?string $name = null, string|null $name = null,
?string $port = null): Connection string|null $port = null): Connection
{ {
$available_drivers = DriverManager::getAvailableDrivers(); $available_drivers = DriverManager::getAvailableDrivers();
if (!in_array($driver, $available_drivers)) if (!in_array($driver, $available_drivers))

View file

@ -37,11 +37,11 @@ class connection_parameter_factory
*/ */
public static function get_configuration( public static function get_configuration(
string $driver, string $driver,
?string $host = null, string|null $host = null,
?string $user = null, string|null $user = null,
?string $password = null, string|null $password = null,
?string $name = null, string|null $name = null,
?string $port = null) : array string|null $port = null) : array
{ {
$params = [ $params = [
'driver' => $driver, 'driver' => $driver,
@ -73,11 +73,11 @@ class connection_parameter_factory
*/ */
private static function build_connection_parameters( private static function build_connection_parameters(
array $params, array $params,
?string $host = null, string|null $host = null,
?string $user = null, string|null $user = null,
?string $password = null, string|null $password = null,
?string $name = null, string|null $name = null,
?string $port = null) : array string|null $port = null) : array
{ {
if ($params['driver'] === 'pdo_sqlite') if ($params['driver'] === 'pdo_sqlite')
{ {
@ -120,7 +120,7 @@ class connection_parameter_factory
* *
* @return array Doctrine's DBAL configuration for SQLite. * @return array Doctrine's DBAL configuration for SQLite.
*/ */
private static function build_sqlite_parameters(array $params, string $path, ?string $user, ?string $password) : array private static function build_sqlite_parameters(array $params, string $path, string|null $user, string|null $password) : array
{ {
$params['path'] = $path; $params['path'] = $path;

View file

@ -29,7 +29,7 @@ abstract class container_aware_migration extends migration implements ContainerA
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function setContainer(ContainerInterface $container = null) public function setContainer(ContainerInterface|null $container = null)
{ {
$this->container = $container; $this->container = $container;
} }

View file

@ -240,7 +240,7 @@ class schema_generator
* @param mixed $data Array of values to be set. * @param mixed $data Array of values to be set.
* @param callable|null $value_transform Callback to transform the value being set. * @param callable|null $value_transform Callback to transform the value being set.
*/ */
private static function set_all(&$schema, $data, ?callable $value_transform = null) private static function set_all(&$schema, $data, callable|null $value_transform = null)
{ {
$data = (!is_array($data)) ? [$data] : $data; $data = (!is_array($data)) ? [$data] : $data;
foreach ($data as $key => $change) foreach ($data as $key => $change)
@ -317,7 +317,7 @@ class schema_generator
* *
* @return Closure|null The value transformation callback or null if it is not needed. * @return Closure|null The value transformation callback or null if it is not needed.
*/ */
private static function get_value_transform(string $change_type, string $schema_type) : ?Closure private static function get_value_transform(string $change_type, string $schema_type) : Closure|null
{ {
if ($change_type !== 'add') if ($change_type !== 'add')
{ {

View file

@ -24,7 +24,7 @@ class error_handler extends ErrorHandler
/** /**
* @psalm-suppress MethodSignatureMismatch * @psalm-suppress MethodSignatureMismatch
*/ */
public function __construct(BufferingLogger $bootstrappingLogger = null, private readonly bool $debug = false) // phpcs:ignore Generic.CodeAnalysis.UselessOverridingMethod.Found public function __construct(BufferingLogger|null $bootstrappingLogger = null, private readonly bool $debug = false) // phpcs:ignore Generic.CodeAnalysis.UselessOverridingMethod.Found
{ {
parent::__construct($bootstrappingLogger, $debug); parent::__construct($bootstrappingLogger, $debug);
} }

View file

@ -52,7 +52,7 @@ class dispatcher extends EventDispatcher implements dispatcher_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function dispatch(object $event, string $eventName = null) : object public function dispatch(object $event, string|null $eventName = null) : object
{ {
if ($this->disabled) if ($this->disabled)
{ {

View file

@ -39,7 +39,7 @@ class recursive_event_filter_iterator extends \RecursiveFilterIterator
* *
* @return recursive_event_filter_iterator * @return recursive_event_filter_iterator
*/ */
public function getChildren(): ?\RecursiveFilterIterator public function getChildren(): \RecursiveFilterIterator|null
{ {
$inner_iterator = $this->getInnerIterator(); $inner_iterator = $this->getInnerIterator();
assert($inner_iterator instanceof \RecursiveIterator); assert($inner_iterator instanceof \RecursiveIterator);

View file

@ -44,7 +44,7 @@ class http_exception extends runtime_exception implements HttpExceptionInterface
* @param array $headers Additional headers to set in the response. * @param array $headers Additional headers to set in the response.
* @param integer $code The Exception code. * @param integer $code The Exception code.
*/ */
public function __construct($status_code, $message = "", array $parameters = array(), \Exception $previous = null, array $headers = array(), $code = 0) public function __construct($status_code, $message = "", array $parameters = array(), \Exception|null $previous = null, array $headers = array(), $code = 0)
{ {
$this->status_code = $status_code; $this->status_code = $status_code;
$this->headers = $headers; $this->headers = $headers;

View file

@ -35,7 +35,7 @@ class runtime_exception extends \RuntimeException implements exception_interface
* @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining. * @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining.
* @param integer $code The Exception code. * @param integer $code The Exception code.
*/ */
public function __construct($message = "", array $parameters = array(), \Exception $previous = null, $code = 0) public function __construct($message = "", array $parameters = array(), \Exception|null $previous = null, $code = 0)
{ {
$this->parameters = $parameters; $this->parameters = $parameters;

View file

@ -47,7 +47,7 @@ class manager
* @param \phpbb\cache\service|null $cache A cache instance or null * @param \phpbb\cache\service|null $cache A cache instance or null
* @param string $cache_name The name of the cache variable, defaults to _ext * @param string $cache_name The name of the cache variable, defaults to _ext
*/ */
public function __construct(ContainerInterface $container, \phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, finder_factory $finder_factory, $extension_table, $phpbb_root_path, \phpbb\cache\service $cache = null, $cache_name = '_ext') public function __construct(ContainerInterface $container, \phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, finder_factory $finder_factory, $extension_table, $phpbb_root_path, \phpbb\cache\service|null $cache = null, $cache_name = '_ext')
{ {
$this->cache = $cache; $this->cache = $cache;
$this->cache_name = $cache_name; $this->cache_name = $cache_name;

View file

@ -15,7 +15,7 @@ namespace phpbb\feed\exception;
class no_feed_exception extends feed_unavailable_exception class no_feed_exception extends feed_unavailable_exception
{ {
public function __construct(\Exception $previous = null, $code = 0) public function __construct(\Exception|null $previous = null, $code = 0)
{ {
parent::__construct('NO_FEED', array(), $previous, $code); parent::__construct('NO_FEED', array(), $previous, $code);
} }

View file

@ -15,7 +15,7 @@ namespace phpbb\feed\exception;
class no_forum_exception extends feed_unavailable_exception class no_forum_exception extends feed_unavailable_exception
{ {
public function __construct($forum_id, \Exception $previous = null, $code = 0) public function __construct($forum_id, \Exception|null $previous = null, $code = 0)
{ {
parent::__construct('NO_FORUM', array($forum_id), $previous, $code); parent::__construct('NO_FORUM', array($forum_id), $previous, $code);
} }

View file

@ -15,7 +15,7 @@ namespace phpbb\feed\exception;
class no_topic_exception extends feed_unavailable_exception class no_topic_exception extends feed_unavailable_exception
{ {
public function __construct($topic_id, \Exception $previous = null, $code = 0) public function __construct($topic_id, \Exception|null $previous = null, $code = 0)
{ {
parent::__construct('NO_TOPIC', array($topic_id), $previous, $code); parent::__construct('NO_TOPIC', array($topic_id), $previous, $code);
} }

View file

@ -15,7 +15,7 @@ namespace phpbb\feed\exception;
class unauthorized_forum_exception extends unauthorized_exception class unauthorized_forum_exception extends unauthorized_exception
{ {
public function __construct($forum_id, \Exception $previous = null, $code = 0) public function __construct($forum_id, \Exception|null $previous = null, $code = 0)
{ {
parent::__construct('SORRY_AUTH_READ', array($forum_id), $previous, $code); parent::__construct('SORRY_AUTH_READ', array($forum_id), $previous, $code);
} }

View file

@ -15,7 +15,7 @@ namespace phpbb\feed\exception;
class unauthorized_topic_exception extends unauthorized_exception class unauthorized_topic_exception extends unauthorized_exception
{ {
public function __construct($topic_id, \Exception $previous = null, $code = 0) public function __construct($topic_id, \Exception|null $previous = null, $code = 0)
{ {
parent::__construct('SORRY_AUTH_READ_TOPIC', array($topic_id), $previous, $code); parent::__construct('SORRY_AUTH_READ_TOPIC', array($topic_id), $previous, $code);
} }

View file

@ -103,7 +103,7 @@ class filespec
* @param \phpbb\mimetype\guesser|null $mimetype_guesser Mime type guesser * @param \phpbb\mimetype\guesser|null $mimetype_guesser Mime type guesser
* @param \phpbb\plupload\plupload|null $plupload Plupload * @param \phpbb\plupload\plupload|null $plupload Plupload
*/ */
public function __construct(\phpbb\filesystem\filesystem_interface $phpbb_filesystem, language $language, \bantu\IniGetWrapper\IniGetWrapper $php_ini, \FastImageSize\FastImageSize $imagesize, $phpbb_root_path, \phpbb\mimetype\guesser $mimetype_guesser = null, \phpbb\plupload\plupload $plupload = null) public function __construct(\phpbb\filesystem\filesystem_interface $phpbb_filesystem, language $language, \bantu\IniGetWrapper\IniGetWrapper $php_ini, \FastImageSize\FastImageSize $imagesize, $phpbb_root_path, \phpbb\mimetype\guesser|null $mimetype_guesser = null, \phpbb\plupload\plupload|null $plupload = null)
{ {
$this->filesystem = $phpbb_filesystem; $this->filesystem = $phpbb_filesystem;
$this->language = $language; $this->language = $language;

View file

@ -86,7 +86,7 @@ class filespec_storage
* @param \phpbb\mimetype\guesser|null $mimetype_guesser Mime type guesser * @param \phpbb\mimetype\guesser|null $mimetype_guesser Mime type guesser
* @param \phpbb\plupload\plupload|null $plupload Plupload * @param \phpbb\plupload\plupload|null $plupload Plupload
*/ */
public function __construct(language $language, \FastImageSize\FastImageSize $imagesize, \phpbb\mimetype\guesser $mimetype_guesser = null, \phpbb\plupload\plupload $plupload = null) public function __construct(language $language, \FastImageSize\FastImageSize $imagesize, \phpbb\mimetype\guesser|null $mimetype_guesser = null, \phpbb\plupload\plupload|null $plupload = null)
{ {
$this->language = $language; $this->language = $language;
$this->imagesize = $imagesize; $this->imagesize = $imagesize;

View file

@ -26,7 +26,7 @@ class filesystem_exception extends runtime_exception
* @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining. * @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining.
* @param integer $code The Exception code. * @param integer $code The Exception code.
*/ */
public function __construct($message = '', $filename = '', $parameters = array(), \Exception $previous = null, $code = 0) public function __construct($message = '', $filename = '', $parameters = array(), \Exception|null $previous = null, $code = 0)
{ {
parent::__construct($message, array_merge(array('filename' => $filename), $parameters), $previous, $code); parent::__construct($message, array_merge(array('filename' => $filename), $parameters), $previous, $code);
} }

View file

@ -293,7 +293,7 @@ class filesystem implements filesystem_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function mirror($origin_dir, $target_dir, \Traversable $iterator = null, $options = array()) public function mirror($origin_dir, $target_dir, \Traversable|null $iterator = null, $options = array())
{ {
try try
{ {

View file

@ -190,7 +190,7 @@ interface filesystem_interface
* The filename which triggered the error can be * The filename which triggered the error can be
* retrieved by filesystem_exception::get_filename() * retrieved by filesystem_exception::get_filename()
*/ */
public function mirror($origin_dir, $target_dir, \Traversable $iterator = null, $options = array()); public function mirror($origin_dir, $target_dir, \Traversable|null $iterator = null, $options = array());
/** /**
* Creates a directory recursively. * Creates a directory recursively.

View file

@ -33,7 +33,7 @@ class factory
* @param string $phpbb_root_path Path to the phpbb root directory * @param string $phpbb_root_path Path to the phpbb root directory
* @param string $php_ext php file extension * @param string $php_ext php file extension
*/ */
public function __construct(?service $cache, bool $use_cache, string $phpbb_root_path, string $php_ext) public function __construct(service|null $cache, bool $use_cache, string $phpbb_root_path, string $php_ext)
{ {
$this->cache = $cache; $this->cache = $cache;
$this->use_cache = $use_cache; $this->use_cache = $use_cache;

View file

@ -58,7 +58,7 @@ class finder
* @param string $cache_name The name of the cache variable, defaults to * @param string $cache_name The name of the cache variable, defaults to
* _ext_finder * _ext_finder
*/ */
public function __construct(?service $cache, bool $use_cache, string $phpbb_root_path, string $php_ext, string $cache_name = '_ext_finder') public function __construct(service|null $cache, bool $use_cache, string $phpbb_root_path, string $php_ext, string $cache_name = '_ext_finder')
{ {
$this->phpbb_root_path = $phpbb_root_path; $this->phpbb_root_path = $phpbb_root_path;
$this->cache = $cache; $this->cache = $cache;

View file

@ -52,7 +52,7 @@ class form_helper
* *
* @return array Array containing form_token and creation_time of form token * @return array Array containing form_token and creation_time of form token
*/ */
public function get_form_tokens(string $form_name, ?int &$now = 0, ?string &$token_sid = '', ?string &$token = ''): array public function get_form_tokens(string $form_name, int|null &$now = 0, string|null &$token_sid = '', string|null &$token = ''): array
{ {
$now = time(); $now = time();
$token_sid = ($this->user->data['user_id'] == ANONYMOUS && !empty($this->config['form_token_sid_guests'])) ? $this->user->session_id : ''; $token_sid = ($this->user->data['user_id'] == ANONYMOUS && !empty($this->config['form_token_sid_guests'])) ? $this->user->session_id : '';
@ -71,7 +71,7 @@ class form_helper
* @param int|null $timespan Lifetime of token or null if default value should be used * @param int|null $timespan Lifetime of token or null if default value should be used
* @return bool True if form token is valid, false if not * @return bool True if form token is valid, false if not
*/ */
public function check_form_tokens(string $form_name, ?int $timespan = null): bool public function check_form_tokens(string $form_name, int|null $timespan = null): bool
{ {
if ($timespan === null) if ($timespan === null)
{ {

View file

@ -74,7 +74,7 @@ abstract class database_task extends task_base
* *
* @return Result|null Result of the query. * @return Result|null Result of the query.
*/ */
protected function query(string $sql) : ?Result protected function query(string $sql) : Result|null
{ {
try try
{ {
@ -95,7 +95,7 @@ abstract class database_task extends task_base
* *
* @return Statement|null The prepared statement object or null if preparing failed * @return Statement|null The prepared statement object or null if preparing failed
*/ */
protected function create_prepared_stmt(string $sql): ?Statement protected function create_prepared_stmt(string $sql): Statement|null
{ {
try try
{ {
@ -155,7 +155,7 @@ abstract class database_task extends task_base
* *
* @return int|null The last insert ID. * @return int|null The last insert ID.
*/ */
protected function get_last_insert_id() : ?int protected function get_last_insert_id() : int|null
{ {
try try
{ {

View file

@ -38,7 +38,7 @@ trait sequential_task
* *
* @throws resource_limit_reached_exception When resources are exhausted. * @throws resource_limit_reached_exception When resources are exhausted.
*/ */
protected function execute(config $config, array $data, ?string $counter_name = null) : void protected function execute(config $config, array $data, string|null $counter_name = null) : void
{ {
if ($counter_name === null) if ($counter_name === null)
{ {

View file

@ -119,8 +119,8 @@ abstract class base implements messenger_interface
user $user, user $user,
string $phpbb_root_path, string $phpbb_root_path,
string $template_cache_path, string $template_cache_path,
?manager $ext_manager = null, manager|null $ext_manager = null,
?log_interface $log = null log_interface|null $log = null
) )
{ {
$this->assets_bag = $assets_bag; $this->assets_bag = $assets_bag;
@ -469,7 +469,7 @@ abstract class base implements messenger_interface
* *
* @return void * @return void
*/ */
protected function set_template_paths(string|array $path_name, string|array $paths): void protected function set_template_paths(array|string $path_name, array|string $paths): void
{ {
$this->setup_template(); $this->setup_template();
$this->template->set_custom_style($path_name, $paths); $this->template->set_custom_style($path_name, $paths);

View file

@ -91,7 +91,7 @@ class email extends messenger_base
* method additionally checks if the type provides an email template. * method additionally checks if the type provides an email template.
* @return bool * @return bool
*/ */
public function is_available(type_interface $notification_type = null) public function is_available(type_interface|null $notification_type = null)
{ {
return parent::is_available($notification_type) && $this->config['email_enable'] && !empty($this->user->data['user_email']); return parent::is_available($notification_type) && $this->config['email_enable'] && !empty($this->user->data['user_email']);
} }

View file

@ -59,7 +59,7 @@ abstract class messenger_base extends \phpbb\notification\method\base
* only if the type is provided and if it doesn't provide an email template. * only if the type is provided and if it doesn't provide an email template.
* @return bool * @return bool
*/ */
public function is_available(type_interface $notification_type = null) public function is_available(type_interface|null $notification_type = null)
{ {
return $notification_type === null || $notification_type->get_email_template() !== false; return $notification_type === null || $notification_type->get_email_template() !== false;
} }

View file

@ -101,7 +101,7 @@ class webpush extends base implements extended_method_interface
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */
public function is_available(type_interface $notification_type = null): bool public function is_available(type_interface|null $notification_type = null): bool
{ {
return $this->config['webpush_enable'] return $this->config['webpush_enable']
&& $this->config['webpush_vapid_public'] && $this->config['webpush_vapid_public']

View file

@ -57,7 +57,7 @@ class request implements request_interface
* Initialises the request class, that means it stores all input data in {@link $input input} * Initialises the request class, that means it stores all input data in {@link $input input}
* and then calls {@link \phpbb\request\deactivated_super_global \phpbb\request\deactivated_super_global} * and then calls {@link \phpbb\request\deactivated_super_global \phpbb\request\deactivated_super_global}
*/ */
public function __construct(\phpbb\request\type_cast_helper_interface $type_cast_helper = null, $disable_super_globals = true) public function __construct(\phpbb\request\type_cast_helper_interface|null $type_cast_helper = null, $disable_super_globals = true)
{ {
if ($type_cast_helper) if ($type_cast_helper)
{ {

View file

@ -48,7 +48,7 @@ class default_resources_locator implements resources_locator_interface
* @param string $environment Name of the current environment * @param string $environment Name of the current environment
* @param manager|null $extension_manager Extension manager * @param manager|null $extension_manager Extension manager
*/ */
public function __construct($phpbb_root_path, $environment, manager $extension_manager = null) public function __construct($phpbb_root_path, $environment, manager|null $extension_manager = null)
{ {
$this->phpbb_root_path = $phpbb_root_path; $this->phpbb_root_path = $phpbb_root_path;
$this->environment = $environment; $this->environment = $environment;

View file

@ -316,7 +316,7 @@ abstract class base implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function create_index(int &$post_counter = 0): ?array public function create_index(int &$post_counter = 0): array|null
{ {
$max_post_id = $this->get_max_post_id(); $max_post_id = $this->get_max_post_id();
$forums_indexing_enabled = $this->forum_ids_with_indexing_enabled(); $forums_indexing_enabled = $this->forum_ids_with_indexing_enabled();
@ -377,7 +377,7 @@ abstract class base implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function delete_index(int &$post_counter = null): ?array public function delete_index(int|null &$post_counter = null): array|null
{ {
$max_post_id = $this->get_max_post_id(); $max_post_id = $this->get_max_post_id();

View file

@ -912,7 +912,7 @@ class fulltext_mysql extends base implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function create_index(int &$post_counter = 0): ?array public function create_index(int &$post_counter = 0): array|null
{ {
// Make sure we can actually use MySQL with fulltext indexes // Make sure we can actually use MySQL with fulltext indexes
if ($error = $this->init()) if ($error = $this->init())
@ -984,7 +984,7 @@ class fulltext_mysql extends base implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function delete_index(int &$post_counter = null): ?array public function delete_index(int|null &$post_counter = null): array|null
{ {
// Make sure we can actually use MySQL with fulltext indexes // Make sure we can actually use MySQL with fulltext indexes
if ($error = $this->init()) if ($error = $this->init())

View file

@ -1621,7 +1621,7 @@ class fulltext_native extends base implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function delete_index(int &$post_counter = null): ?array public function delete_index(int|null &$post_counter = null): array|null
{ {
$truncate_tables = [ $truncate_tables = [
$this->search_wordlist_table, $this->search_wordlist_table,

View file

@ -867,7 +867,7 @@ class fulltext_postgres extends base implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function create_index(int &$post_counter = 0): ?array public function create_index(int &$post_counter = 0): array|null
{ {
// Make sure we can actually use PostgreSQL with fulltext indexes // Make sure we can actually use PostgreSQL with fulltext indexes
if ($error = $this->init()) if ($error = $this->init())
@ -926,7 +926,7 @@ class fulltext_postgres extends base implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function delete_index(int &$post_counter = null): ?array public function delete_index(int|null &$post_counter = null): array|null
{ {
// Make sure we can actually use PostgreSQL with fulltext indexes // Make sure we can actually use PostgreSQL with fulltext indexes
if ($error = $this->init()) if ($error = $this->init())

View file

@ -629,7 +629,7 @@ class fulltext_sphinx implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function create_index(int &$post_counter = 0): ?array public function create_index(int &$post_counter = 0): array|null
{ {
if (!$this->index_created()) if (!$this->index_created())
{ {
@ -656,7 +656,7 @@ class fulltext_sphinx implements search_backend_interface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function delete_index(int &$post_counter = null): ?array public function delete_index(int|null &$post_counter = null): array|null
{ {
if ($this->index_created()) if ($this->index_created())
{ {

View file

@ -163,7 +163,7 @@ interface search_backend_interface
* @param int $post_counter * @param int $post_counter
* @return array|null array with current status or null if finished * @return array|null array with current status or null if finished
*/ */
public function create_index(int &$post_counter = 0): ?array; public function create_index(int &$post_counter = 0): array|null;
/** /**
* Drop fulltext index * Drop fulltext index
@ -171,7 +171,7 @@ interface search_backend_interface
* @param int $post_counter * @param int $post_counter
* @return array|null array with current status or null if finished * @return array|null array with current status or null if finished
*/ */
public function delete_index(int &$post_counter = 0): ?array; public function delete_index(int &$post_counter = 0): array|null;
/** /**
* Returns true if both FULLTEXT indexes exist * Returns true if both FULLTEXT indexes exist

View file

@ -28,7 +28,7 @@ class config
* @param string $name The name of the section that shall be returned * @param string $name The name of the section that shall be returned
* @return config_section|null The section object or null if none was found * @return config_section|null The section object or null if none was found
*/ */
public function get_section_by_name(string $name): ?config_section public function get_section_by_name(string $name): config_section|null
{ {
for ($i = 0, $size = count($this->sections); $i < $size; $i++) for ($i = 0, $size = count($this->sections); $i < $size; $i++)
{ {

View file

@ -60,7 +60,7 @@ class config_section extends config_item
* @return config_variable|null The first variable object from this section with the * @return config_variable|null The first variable object from this section with the
* given name or null if none was found * given name or null if none was found
*/ */
public function get_variable_by_name(string $name): ?config_variable public function get_variable_by_name(string $name): config_variable|null
{ {
for ($i = 0, $size = count($this->variables); $i < $size; $i++) for ($i = 0, $size = count($this->variables); $i < $size; $i++)
{ {

View file

@ -26,7 +26,7 @@ class storage_exception extends runtime_exception
* @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining * @param \Exception|null $previous The previous runtime_exception used for the runtime_exception chaining
* @param integer $code The Exception code * @param integer $code The Exception code
*/ */
public function __construct($message = '', $filename = '', $parameters = [], \Exception $previous = null, $code = 0) public function __construct($message = '', $filename = '', $parameters = [], \Exception|null $previous = null, $code = 0)
{ {
parent::__construct($message, array_merge(array('filename' => $filename), $parameters), $previous, $code); parent::__construct($message, array_merge(array('filename' => $filename), $parameters), $previous, $code);
} }

View file

@ -66,7 +66,7 @@ class environment extends \Twig\Environment
* @param dispatcher_interface|null $phpbb_dispatcher Event dispatcher object * @param dispatcher_interface|null $phpbb_dispatcher Event dispatcher object
* @param array $options Array of options to pass to Twig * @param array $options Array of options to pass to Twig
*/ */
public function __construct(assets_bag $assets_bag, config $phpbb_config, filesystem $filesystem, path_helper $path_helper, $cache_path, manager $extension_manager = null, LoaderInterface $loader = null, dispatcher_interface $phpbb_dispatcher = null, $options = array()) public function __construct(assets_bag $assets_bag, config $phpbb_config, filesystem $filesystem, path_helper $path_helper, $cache_path, manager|null $extension_manager = null, LoaderInterface|null $loader = null, dispatcher_interface|null $phpbb_dispatcher = null, $options = array())
{ {
$this->phpbb_config = $phpbb_config; $this->phpbb_config = $phpbb_config;
@ -271,7 +271,7 @@ class environment extends \Twig\Environment
* @return \Twig\Template A template instance representing the given template name * @return \Twig\Template A template instance representing the given template name
* @throws \Twig\Error\LoaderError * @throws \Twig\Error\LoaderError
*/ */
public function loadTemplate(string $cls, string $name, int $index = null) : \Twig\Template public function loadTemplate(string $cls, string $name, int|null $index = null) : \Twig\Template
{ {
if (strpos($name, '@') === false) if (strpos($name, '@') === false)
{ {

View file

@ -70,7 +70,7 @@ class avatar extends AbstractExtension
* *
* @return string The avatar HTML for the specified mode * @return string The avatar HTML for the specified mode
*/ */
public function get_avatar(environment $environment, string $mode, array $row, ?string $alt, ?bool $ignore_config, ?bool $lazy): string public function get_avatar(environment $environment, string $mode, array $row, string|null $alt, bool|null $ignore_config, bool|null $lazy): string
{ {
$alt = $alt ?? false; $alt = $alt ?? false;
$ignore_config = $ignore_config ?? false; $ignore_config = $ignore_config ?? false;

View file

@ -70,9 +70,9 @@ class twig extends \phpbb\template\base
\phpbb\template\context $context, \phpbb\template\context $context,
environment $twig_environment, environment $twig_environment,
$cache_path, $cache_path,
\phpbb\user $user = null, \phpbb\user|null $user = null,
$extensions = [], $extensions = [],
\phpbb\extension\manager $extension_manager = null \phpbb\extension\manager|null $extension_manager = null
) )
{ {
$this->path_helper = $path_helper; $this->path_helper = $path_helper;

View file

@ -709,7 +709,7 @@ class user extends \phpbb\session
* @param ?\DateTimeZone $timezone Time zone of the time. * @param ?\DateTimeZone $timezone Time zone of the time.
* @return \phpbb\datetime Date time object linked to the current users locale * @return \phpbb\datetime Date time object linked to the current users locale
*/ */
public function create_datetime(string $time = 'now', ?\DateTimeZone $timezone = null) public function create_datetime(string $time = 'now', \DateTimeZone|null $timezone = null)
{ {
$timezone = $timezone ?: $this->create_timezone(); $timezone = $timezone ?: $this->create_timezone();
return new $this->datetime($this, $time, $timezone); return new $this->datetime($this, $time, $timezone);
@ -723,7 +723,7 @@ class user extends \phpbb\session
* @param ?\DateTimeZone $timezone Timezone of the date/time, falls back to timezone of current user * @param ?\DateTimeZone $timezone Timezone of the date/time, falls back to timezone of current user
* @return string|false Returns the unix timestamp or false if date is invalid * @return string|false Returns the unix timestamp or false if date is invalid
*/ */
public function get_timestamp_from_format($format, $time, ?\DateTimeZone $timezone = null) public function get_timestamp_from_format($format, $time, \DateTimeZone|null $timezone = null)
{ {
$timezone = $timezone ?: $this->create_timezone(); $timezone = $timezone ?: $this->create_timezone();
$date = \DateTime::createFromFormat($format, $time, $timezone); $date = \DateTime::createFromFormat($format, $time, $timezone);

View file

@ -56,7 +56,7 @@ class phpbb_mock_container_builder implements ContainerInterface
* *
* @api * @api
*/ */
public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE): ?object public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE): object|null
{ {
if ($this->has($id)) if ($this->has($id))
{ {

View file

@ -82,13 +82,13 @@ class search_backend_mock implements search_backend_interface
// Nothing // Nothing
} }
public function create_index(int &$post_counter = 0): ?array public function create_index(int &$post_counter = 0): array|null
{ {
$this->index_created = true; $this->index_created = true;
return null; return null;
} }
public function delete_index(int &$post_counter = 0): ?array public function delete_index(int &$post_counter = 0): array|null
{ {
$this->index_created = true; $this->index_created = true;
return null; return null;

View file

@ -221,7 +221,7 @@ class phpbb_profilefield_type_date_test extends phpbb_test_case
return implode('-', func_get_args()); return implode('-', func_get_args());
} }
public function create_datetime_callback($time = 'now', \DateTimeZone $timezone = null) public function create_datetime_callback($time = 'now', \DateTimeZone|null $timezone = null)
{ {
$timezone = $timezone ?: $this->user->timezone; $timezone = $timezone ?: $this->user->timezone;
return new \phpbb\datetime($this->user, $time, $timezone); return new \phpbb\datetime($this->user, $time, $timezone);

View file

@ -346,7 +346,7 @@ class phpbb_test_case_helpers
* @param string $styles_path Path to the styles dir * @param string $styles_path Path to the styles dir
* @return ContainerInterface * @return ContainerInterface
*/ */
public function set_s9e_services(ContainerInterface $container = null, $fixture = null, $styles_path = null) public function set_s9e_services(ContainerInterface|null $container = null, $fixture = null, $styles_path = null)
{ {
static $first_run; static $first_run;
global $config, $phpbb_container, $phpbb_dispatcher, $phpbb_root_path, $phpEx, $request, $user; global $config, $phpbb_container, $phpbb_dispatcher, $phpbb_root_path, $phpEx, $request, $user;