diff --git a/composer.json b/composer.json index 74b1c20ad..ae36a252a 100644 --- a/composer.json +++ b/composer.json @@ -111,7 +111,7 @@ "code:md": "phpmd src text codesize, naming, unusedcode", "code:md:gh": "phpmd src github codesize, naming, unusedcode", "code:style": "phpcs ./src/ --standard=PSR12 -n", - "code:fix": "php-cs-fixer fix ./src/ --rules=@PSR12,native_function_invocation --allow-risky=yes --show-progress=none", + "code:fix": "php-cs-fixer fix ./src/ --rules=@PSR12,native_function_invocation,nullable_type_declaration_for_default_null_value --allow-risky=yes --show-progress=none", "test": "@test:integration", "test:integration": "phpunit -c ./ --testsuite=IntegrationTests", "test:coverage": "phpunit -c ./ --testsuite=IntegrationTests --coverage-text --coverage-clover=build/logs/clover.xml", diff --git a/src/Assets/Cache.php b/src/Assets/Cache.php index 847c9fffe..7df8dbbd4 100644 --- a/src/Assets/Cache.php +++ b/src/Assets/Cache.php @@ -180,7 +180,7 @@ public function createKeyFromPath(string $path, string $relativePath): string /** * Creates key from an Asset source: "$filename_$ext_$tag__VERSION__MD5". */ - public function createKeyFromAsset(Asset $asset, array $tags = null): string + public function createKeyFromAsset(Asset $asset, ?array $tags = null): string { $tags = implode('_', $tags ?? []); diff --git a/src/Assets/Url.php b/src/Assets/Url.php index 8bfa73459..c02030516 100644 --- a/src/Assets/Url.php +++ b/src/Assets/Url.php @@ -51,7 +51,7 @@ class Url * @param Page|Asset|string|null $value * @param array|null $options Rendering options, e.g.: ['canonical' => true, 'format' => 'html', 'language' => 'fr'] */ - public function __construct(Builder $builder, $value, array $options = null) + public function __construct(Builder $builder, $value, ?array $options = null) { $this->builder = $builder; $this->config = $builder->getConfig(); diff --git a/src/Builder.php b/src/Builder.php index c86e6c84b..5e62395e4 100644 --- a/src/Builder.php +++ b/src/Builder.php @@ -98,7 +98,7 @@ class Builder implements LoggerAwareInterface * @param Config|array|null $config * @param LoggerInterface|null $logger */ - public function __construct($config = null, LoggerInterface $logger = null) + public function __construct($config = null, ?LoggerInterface $logger = null) { // set logger if ($logger === null) { @@ -202,7 +202,7 @@ public function getConfig(): Config /** * Config::setSourceDir() alias. */ - public function setSourceDir(string $sourceDir = null): self + public function setSourceDir(?string $sourceDir = null): self { $this->config->setSourceDir($sourceDir); @@ -212,7 +212,7 @@ public function setSourceDir(string $sourceDir = null): self /** * Config::setDestinationDir() alias. */ - public function setDestinationDir(string $destinationDir = null): self + public function setDestinationDir(?string $destinationDir = null): self { $this->config->setDestinationDir($destinationDir); @@ -278,7 +278,7 @@ public function setData(array $data): void /** * Returns data collection. */ - public function getData(string $language = null): array + public function getData(?string $language = null): array { if ($language) { if (empty($this->data[$language])) { diff --git a/src/Collection/Collection.php b/src/Collection/Collection.php index 11990a190..e93aa708d 100644 --- a/src/Collection/Collection.php +++ b/src/Collection/Collection.php @@ -217,7 +217,7 @@ public function getIterator(): \ArrayIterator /** * {@inheritdoc} */ - public function usort(\Closure $callback = null): CollectionInterface + public function usort(?\Closure $callback = null): CollectionInterface { $callback ? usort($this->items, $callback) : usort($this->items, function ($a, $b) { if ($a == $b) { diff --git a/src/Collection/CollectionInterface.php b/src/Collection/CollectionInterface.php index 915f09e8c..2af9fcd1f 100644 --- a/src/Collection/CollectionInterface.php +++ b/src/Collection/CollectionInterface.php @@ -93,7 +93,7 @@ public function getIterator(): \ArrayIterator; * * @param \Closure|null $callback */ - public function usort(\Closure $callback = null): self; + public function usort(?\Closure $callback = null): self; /** * Reverse items. diff --git a/src/Collection/Menu/Entry.php b/src/Collection/Menu/Entry.php index 5f6c26c53..1c3a4a805 100644 --- a/src/Collection/Menu/Entry.php +++ b/src/Collection/Menu/Entry.php @@ -41,7 +41,7 @@ public function getName(): ?string /** * Set the menu entry URL. */ - public function setUrl(string $value = null): self + public function setUrl(?string $value = null): self { $this->offsetSet('url', $value); diff --git a/src/Collection/Page/Collection.php b/src/Collection/Page/Collection.php index ddd969879..0f4a910a4 100644 --- a/src/Collection/Page/Collection.php +++ b/src/Collection/Page/Collection.php @@ -160,7 +160,7 @@ public function filter(\Closure $callback): self /** * {@inheritdoc} */ - public function usort(\Closure $callback = null): self + public function usort(?\Closure $callback = null): self { return parent::usort($callback); } diff --git a/src/Config.php b/src/Config.php index 373b9fcef..8149329cb 100644 --- a/src/Config.php +++ b/src/Config.php @@ -176,7 +176,7 @@ public function get(string $key, ?string $language = null, bool $fallback = true * * @throws \InvalidArgumentException */ - public function setSourceDir(string $sourceDir = null): self + public function setSourceDir(?string $sourceDir = null): self { if ($sourceDir === null) { $sourceDir = getcwd(); @@ -202,7 +202,7 @@ public function getSourceDir(): string * * @throws \InvalidArgumentException */ - public function setDestinationDir(string $destinationDir = null): self + public function setDestinationDir(?string $destinationDir = null): self { if ($destinationDir === null) { $destinationDir = $this->sourceDir; diff --git a/src/Exception/ConfigException.php b/src/Exception/ConfigException.php index d9475ab5c..7f5b95dfa 100644 --- a/src/Exception/ConfigException.php +++ b/src/Exception/ConfigException.php @@ -15,7 +15,7 @@ class ConfigException extends \RuntimeException implements ExceptionInterface { - public function __construct(string $message, int $code = 0, \Throwable $previous = null) + public function __construct(string $message, int $code = 0, ?\Throwable $previous = null) { parent::__construct("Configuration: $message", $code, $previous); } diff --git a/src/Exception/RuntimeException.php b/src/Exception/RuntimeException.php index aa5a7b1b2..da97a8c5d 100644 --- a/src/Exception/RuntimeException.php +++ b/src/Exception/RuntimeException.php @@ -19,7 +19,7 @@ class RuntimeException extends \RuntimeException implements ExceptionInterface private $pageLine; private $pageCol; - public function __construct(string $message, string $pageFile = null, int $pageLine = null, int $pageCol = null, \Throwable $previous = null) + public function __construct(string $message, ?string $pageFile = null, ?int $pageLine = null, ?int $pageCol = null, ?\Throwable $previous = null) { $this->pageFile = $pageFile; $this->pageLine = $pageLine; diff --git a/src/Logger/PrintLogger.php b/src/Logger/PrintLogger.php index 45470e6bd..0ea7e35ad 100644 --- a/src/Logger/PrintLogger.php +++ b/src/Logger/PrintLogger.php @@ -38,7 +38,7 @@ class PrintLogger extends AbstractLogger /** * Print only the $printLevelMax. */ - public function __construct(int $printLevelMax = null) + public function __construct(?int $printLevelMax = null) { $this->printLevelMax = $printLevelMax; } diff --git a/src/Renderer/Extension/Core.php b/src/Renderer/Extension/Core.php index 331a4a807..5fbad8412 100644 --- a/src/Renderer/Extension/Core.php +++ b/src/Renderer/Extension/Core.php @@ -265,7 +265,7 @@ public function sortByDate(\Traversable $collection, string $variable = 'date', * @param Page|Asset|string|null $value * @param array|null $options */ - public function url(array $context, $value = null, array $options = null): string + public function url(array $context, $value = null, ?array $options = null): string { $optionsLang = []; $optionsLang['language'] = (string) $context['site']['language']; diff --git a/src/Renderer/Language.php b/src/Renderer/Language.php index dcfa1bd3e..b506ad5df 100644 --- a/src/Renderer/Language.php +++ b/src/Renderer/Language.php @@ -26,7 +26,7 @@ class Language /** @var string Current language. */ protected $language; - public function __construct(\Cecil\Config $config, string $language = null) + public function __construct(\Cecil\Config $config, ?string $language = null) { $this->config = $config; $this->language = $language; diff --git a/src/Renderer/Site.php b/src/Renderer/Site.php index aa56b9665..1d7ca8780 100644 --- a/src/Renderer/Site.php +++ b/src/Renderer/Site.php @@ -121,7 +121,7 @@ public function offsetUnset($offset): void * * @throws \DomainException */ - public function getPage(string $id, string $language = null): ?CollectionPage + public function getPage(string $id, ?string $language = null): ?CollectionPage { $pageId = $id; $language = $language ?? $this->language; diff --git a/src/Renderer/Twig.php b/src/Renderer/Twig.php index f5aed51e8..5431894f7 100644 --- a/src/Renderer/Twig.php +++ b/src/Renderer/Twig.php @@ -115,7 +115,7 @@ public function __construct(Builder $builder, $templatesPath) $this->twig->registerUndefinedFilterCallback(function ($name) { switch ($name) { case 'localizeddate': - return new \Twig\TwigFilter($name, function (\DateTime $value = null) { + return new \Twig\TwigFilter($name, function (?\DateTime $value = null) { return date($this->builder->getConfig()->get('date.format') ?? 'F j, Y', $value->getTimestamp()); }); } diff --git a/src/Step/Optimize/AbstractOptimize.php b/src/Step/Optimize/AbstractOptimize.php index 1a0af045d..b6eac2666 100644 --- a/src/Step/Optimize/AbstractOptimize.php +++ b/src/Step/Optimize/AbstractOptimize.php @@ -122,7 +122,7 @@ abstract public function processFile(\Symfony\Component\Finder\SplFileInfo $file /** * Encode file content. */ - public function encode(string $content = null): ?string + public function encode(?string $content = null): ?string { return $content; } @@ -130,7 +130,7 @@ public function encode(string $content = null): ?string /** * Decode file content. */ - public function decode(string $content = null): ?string + public function decode(?string $content = null): ?string { return $content; } diff --git a/src/Step/Optimize/Html.php b/src/Step/Optimize/Html.php index 9440b91c3..d21918c22 100644 --- a/src/Step/Optimize/Html.php +++ b/src/Step/Optimize/Html.php @@ -65,7 +65,7 @@ public function processFile(\Symfony\Component\Finder\SplFileInfo $file): string /** * {@inheritdoc} */ - public function encode(string $content = null): ?string + public function encode(?string $content = null): ?string { return json_encode($content); } @@ -73,7 +73,7 @@ public function encode(string $content = null): ?string /** * {@inheritdoc} */ - public function decode(string $content = null): ?string + public function decode(?string $content = null): ?string { return json_decode((string) $content); } diff --git a/src/Step/Optimize/Images.php b/src/Step/Optimize/Images.php index 1cf9453b6..c54446005 100644 --- a/src/Step/Optimize/Images.php +++ b/src/Step/Optimize/Images.php @@ -62,7 +62,7 @@ public function processFile(\Symfony\Component\Finder\SplFileInfo $file): string /** * {@inheritdoc} */ - public function encode(string $content = null): ?string + public function encode(?string $content = null): ?string { return base64_encode((string) $content); } @@ -70,7 +70,7 @@ public function encode(string $content = null): ?string /** * {@inheritdoc} */ - public function decode(string $content = null): ?string + public function decode(?string $content = null): ?string { return base64_decode((string) $content); } diff --git a/src/Step/StaticFiles/Copy.php b/src/Step/StaticFiles/Copy.php index d59ac03b3..f35080772 100644 --- a/src/Step/StaticFiles/Copy.php +++ b/src/Step/StaticFiles/Copy.php @@ -100,7 +100,7 @@ public function process(): void /** * Copying (mirror) files. */ - protected function copy(string $from, string $to = null, array $exclude = null): bool + protected function copy(string $from, ?string $to = null, ?array $exclude = null): bool { if (Util\File::getFS()->exists($from)) { $finder = Finder::create()