From 064d27426d7d338c2286bc50ef5e2a6b8e59e126 Mon Sep 17 00:00:00 2001 From: Tom Arbesser Date: Sat, 1 Feb 2025 16:23:09 +1100 Subject: [PATCH] Improve PHP 8.4 support (#45) Fixed implicitly nullable parameter declarations --- src/Assetic/Asset/AssetCache.php | 12 ++++++------ src/Assetic/Asset/AssetCollection.php | 4 ++-- src/Assetic/Asset/AssetReference.php | 4 ++-- src/Assetic/Asset/BaseAsset.php | 8 ++++---- src/Assetic/Asset/FileAsset.php | 2 +- src/Assetic/Asset/GlobAsset.php | 4 ++-- src/Assetic/Asset/HttpAsset.php | 2 +- src/Assetic/Asset/MockAsset.php | 4 ++-- src/Assetic/Asset/StringAsset.php | 2 +- src/Assetic/Contracts/Asset/AssetInterface.php | 8 ++++---- src/Assetic/Exception/FilterException.php | 2 +- src/Assetic/Extension/Twig/AsseticExtension.php | 2 +- src/Assetic/Extension/Twig/TwigFormulaLoader.php | 2 +- src/Assetic/Filter/CssImportFilter.php | 4 ++-- src/Assetic/Filter/ScssphpFilter.php | 2 +- src/Assetic/Filter/UglifyJs3Filter.php | 4 ++-- tests/Assetic/Test/Filter/UglifyJs3FilterTest.php | 6 +++--- 17 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/Assetic/Asset/AssetCache.php b/src/Assetic/Asset/AssetCache.php index a5ec5ce..7a7901a 100644 --- a/src/Assetic/Asset/AssetCache.php +++ b/src/Assetic/Asset/AssetCache.php @@ -38,7 +38,7 @@ public function clearFilters() $this->asset->clearFilters(); } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { $cacheKey = self::getCacheKey($this->asset, $additionalFilter, 'load'); if ($this->cache->has($cacheKey)) { @@ -51,7 +51,7 @@ public function load(FilterInterface $additionalFilter = null) $this->cache->set($cacheKey, $this->asset->getContent()); } - public function dump(FilterInterface $additionalFilter = null) + public function dump(?FilterInterface $additionalFilter = null) { $cacheKey = self::getCacheKey($this->asset, $additionalFilter, 'dump'); if ($this->cache->has($cacheKey)) { @@ -130,13 +130,13 @@ public function getValues() * * last modified * * filters * - * @param AssetInterface $asset The asset - * @param FilterInterface $additionalFilter Any additional filter being applied - * @param string $salt Salt for the key + * @param AssetInterface $asset The asset + * @param ?FilterInterface $additionalFilter Any additional filter being applied + * @param string $salt Salt for the key * * @return string A key for identifying the current asset */ - private static function getCacheKey(AssetInterface $asset, FilterInterface $additionalFilter = null, $salt = '') + private static function getCacheKey(AssetInterface $asset, ?FilterInterface $additionalFilter = null, $salt = '') { if ($additionalFilter) { $asset = clone $asset; diff --git a/src/Assetic/Asset/AssetCollection.php b/src/Assetic/Asset/AssetCollection.php index 0fe0834..db4ef95 100644 --- a/src/Assetic/Asset/AssetCollection.php +++ b/src/Assetic/Asset/AssetCollection.php @@ -125,7 +125,7 @@ public function clearFilters() $this->clones = new \SplObjectStorage(); } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { // loop through leaves and load each asset $parts = []; @@ -137,7 +137,7 @@ public function load(FilterInterface $additionalFilter = null) $this->content = implode("\n", $parts); } - public function dump(FilterInterface $additionalFilter = null) + public function dump(?FilterInterface $additionalFilter = null) { // loop through leaves and dump each asset $parts = []; diff --git a/src/Assetic/Asset/AssetReference.php b/src/Assetic/Asset/AssetReference.php index 967a344..18786f8 100644 --- a/src/Assetic/Asset/AssetReference.php +++ b/src/Assetic/Asset/AssetReference.php @@ -52,14 +52,14 @@ public function clearFilters() $this->callAsset(__FUNCTION__); } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { $this->flushFilters(); return $this->callAsset(__FUNCTION__, array($additionalFilter)); } - public function dump(FilterInterface $additionalFilter = null) + public function dump(?FilterInterface $additionalFilter = null) { $this->flushFilters(); diff --git a/src/Assetic/Asset/BaseAsset.php b/src/Assetic/Asset/BaseAsset.php index 2ad38fc..b58110e 100644 --- a/src/Assetic/Asset/BaseAsset.php +++ b/src/Assetic/Asset/BaseAsset.php @@ -70,10 +70,10 @@ public function clearFilters() /** * Encapsulates asset loading logic. * - * @param string $content The asset content - * @param FilterInterface $additionalFilter An additional filter + * @param string $content The asset content + * @param ?FilterInterface $additionalFilter An additional filter */ - protected function doLoad($content, FilterInterface $additionalFilter = null) + protected function doLoad($content, ?FilterInterface $additionalFilter = null) { $filter = clone $this->filters; if ($additionalFilter) { @@ -89,7 +89,7 @@ protected function doLoad($content, FilterInterface $additionalFilter = null) $this->loaded = true; } - public function dump(FilterInterface $additionalFilter = null) + public function dump(?FilterInterface $additionalFilter = null) { if (!$this->loaded) { $this->load(); diff --git a/src/Assetic/Asset/FileAsset.php b/src/Assetic/Asset/FileAsset.php index 0c45677..4b5e484 100644 --- a/src/Assetic/Asset/FileAsset.php +++ b/src/Assetic/Asset/FileAsset.php @@ -45,7 +45,7 @@ public function __construct($source, $filters = [], $sourceRoot = null, $sourceP parent::__construct($filters, $sourceRoot, $sourcePath, $vars); } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { $source = VarUtils::resolve($this->source, $this->getVars(), $this->getValues()); diff --git a/src/Assetic/Asset/GlobAsset.php b/src/Assetic/Asset/GlobAsset.php index f8aeeec..fe8a57b 100644 --- a/src/Assetic/Asset/GlobAsset.php +++ b/src/Assetic/Asset/GlobAsset.php @@ -41,7 +41,7 @@ public function all() return parent::all(); } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { if (!$this->initialized) { $this->initialize(); @@ -50,7 +50,7 @@ public function load(FilterInterface $additionalFilter = null) parent::load($additionalFilter); } - public function dump(FilterInterface $additionalFilter = null) + public function dump(?FilterInterface $additionalFilter = null) { if (!$this->initialized) { $this->initialize(); diff --git a/src/Assetic/Asset/HttpAsset.php b/src/Assetic/Asset/HttpAsset.php index 4dd51d0..6191e79 100644 --- a/src/Assetic/Asset/HttpAsset.php +++ b/src/Assetic/Asset/HttpAsset.php @@ -42,7 +42,7 @@ public function __construct($sourceUrl, $filters = [], $ignoreErrors = false, ar parent::__construct($filters, $scheme . '://' . $host, $path, $vars); } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { $content = @file_get_contents( VarUtils::resolve($this->sourceUrl, $this->getVars(), $this->getValues()) diff --git a/src/Assetic/Asset/MockAsset.php b/src/Assetic/Asset/MockAsset.php index 8770846..6358424 100644 --- a/src/Assetic/Asset/MockAsset.php +++ b/src/Assetic/Asset/MockAsset.php @@ -32,11 +32,11 @@ public function clearFilters() { } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { } - public function dump(FilterInterface $additionalFilter = null) + public function dump(?FilterInterface $additionalFilter = null) { } diff --git a/src/Assetic/Asset/StringAsset.php b/src/Assetic/Asset/StringAsset.php index 467b1f3..3f3ebe1 100644 --- a/src/Assetic/Asset/StringAsset.php +++ b/src/Assetic/Asset/StringAsset.php @@ -29,7 +29,7 @@ public function __construct($content, $filters = [], $sourceRoot = null, $source parent::__construct($filters, $sourceRoot, $sourcePath); } - public function load(FilterInterface $additionalFilter = null) + public function load(?FilterInterface $additionalFilter = null) { $this->doLoad($this->string, $additionalFilter); } diff --git a/src/Assetic/Contracts/Asset/AssetInterface.php b/src/Assetic/Contracts/Asset/AssetInterface.php index e9b6970..2c51795 100644 --- a/src/Assetic/Contracts/Asset/AssetInterface.php +++ b/src/Assetic/Contracts/Asset/AssetInterface.php @@ -35,9 +35,9 @@ public function clearFilters(); * * You may provide an additional filter to apply during load. * - * @param FilterInterface $additionalFilter An additional filter + * @param ?FilterInterface $additionalFilter An additional filter */ - public function load(FilterInterface $additionalFilter = null); + public function load(?FilterInterface $additionalFilter = null); /** * Applies dump filters and returns the asset as a string. @@ -49,11 +49,11 @@ public function load(FilterInterface $additionalFilter = null); * If the current asset has not been loaded yet, it should be * automatically loaded at this time. * - * @param FilterInterface $additionalFilter An additional filter + * @param ?FilterInterface $additionalFilter An additional filter * * @return string The filtered content of the current asset */ - public function dump(FilterInterface $additionalFilter = null); + public function dump(?FilterInterface $additionalFilter = null); /** * Returns the loaded content of the current asset. diff --git a/src/Assetic/Exception/FilterException.php b/src/Assetic/Exception/FilterException.php index b8df42a..04e0b56 100644 --- a/src/Assetic/Exception/FilterException.php +++ b/src/Assetic/Exception/FilterException.php @@ -32,7 +32,7 @@ public static function fromProcess(Process $proc) return new self($message); } - public function __construct($message, $code = 0, \Exception $previous = null) + public function __construct($message, $code = 0, ?\Exception $previous = null) { parent::__construct($message, $code, $previous); diff --git a/src/Assetic/Extension/Twig/AsseticExtension.php b/src/Assetic/Extension/Twig/AsseticExtension.php index 80fb3a1..813415d 100644 --- a/src/Assetic/Extension/Twig/AsseticExtension.php +++ b/src/Assetic/Extension/Twig/AsseticExtension.php @@ -13,7 +13,7 @@ class AsseticExtension extends AbstractExtension implements GlobalsInterface protected $functions; protected $valueSupplier; - public function __construct(AssetFactory $factory, $functions = [], ValueSupplierInterface $valueSupplier = null) + public function __construct(AssetFactory $factory, $functions = [], ?ValueSupplierInterface $valueSupplier = null) { $this->factory = $factory; $this->functions = []; diff --git a/src/Assetic/Extension/Twig/TwigFormulaLoader.php b/src/Assetic/Extension/Twig/TwigFormulaLoader.php index 7368546..97f0a17 100644 --- a/src/Assetic/Extension/Twig/TwigFormulaLoader.php +++ b/src/Assetic/Extension/Twig/TwigFormulaLoader.php @@ -19,7 +19,7 @@ class TwigFormulaLoader implements FormulaLoaderInterface private $twig; private $logger; - public function __construct(Environment $twig, LoggerInterface $logger = null) + public function __construct(Environment $twig, ?LoggerInterface $logger = null) { $this->twig = $twig; $this->logger = $logger; diff --git a/src/Assetic/Filter/CssImportFilter.php b/src/Assetic/Filter/CssImportFilter.php index 968baac..882ab7a 100644 --- a/src/Assetic/Filter/CssImportFilter.php +++ b/src/Assetic/Filter/CssImportFilter.php @@ -20,9 +20,9 @@ class CssImportFilter extends BaseCssFilter implements DependencyExtractorInterf /** * Constructor. * - * @param FilterInterface $importFilter Filter for each imported asset + * @param ?FilterInterface $importFilter Filter for each imported asset */ - public function __construct(FilterInterface $importFilter = null) + public function __construct(?FilterInterface $importFilter = null) { $this->importFilter = $importFilter ?: new CssRewriteFilter(); } diff --git a/src/Assetic/Filter/ScssphpFilter.php b/src/Assetic/Filter/ScssphpFilter.php index 9600f97..31acd1c 100644 --- a/src/Assetic/Filter/ScssphpFilter.php +++ b/src/Assetic/Filter/ScssphpFilter.php @@ -106,7 +106,7 @@ public function addImportPath($path) $this->importPaths[] = $path; } - public function registerFunction($name, $callable, array $argumentDeclaration = null) + public function registerFunction($name, $callable, ?array $argumentDeclaration = null) { $this->customFunctions[$name] = [ 'callable' => $callable, diff --git a/src/Assetic/Filter/UglifyJs3Filter.php b/src/Assetic/Filter/UglifyJs3Filter.php index 926a83c..5257b74 100644 --- a/src/Assetic/Filter/UglifyJs3Filter.php +++ b/src/Assetic/Filter/UglifyJs3Filter.php @@ -25,8 +25,8 @@ class UglifyJs3Filter extends BaseNodeFilter private $defines; /** - * @param string $uglifyjsBin Absolute path to the uglifyjs executable - * @param string $nodeBin Absolute path to the folder containg node.js executable + * @param string $uglifyjsBin Absolute path to the uglifyjs executable + * @param ?string $nodeBin Absolute path to the folder containing node.js executable */ public function __construct($uglifyjsBin = '/usr/bin/uglifyjs', $nodeBin = null) { diff --git a/tests/Assetic/Test/Filter/UglifyJs3FilterTest.php b/tests/Assetic/Test/Filter/UglifyJs3FilterTest.php index 990ed62..2bd3b6f 100644 --- a/tests/Assetic/Test/Filter/UglifyJs3FilterTest.php +++ b/tests/Assetic/Test/Filter/UglifyJs3FilterTest.php @@ -68,7 +68,7 @@ public function testDefines() /** * Copyright */ -"undefined"==typeof FOO&&(FOO=1),function(){new Array(FOO,2,3,4);var bar=Array(a,b,c),var2=(new Array(5),new Array(a));function bar(foo){var2.push(foo)}bar("abc123")}(); +"undefined"==typeof FOO&&(FOO=1),(()=>{new Array(FOO,2,3,4);var bar=Array(a,b,c),var2=(new Array(5),new Array(a));function bar(foo){var2.push(foo)}bar("abc123")})(); JS; $this->assertEquals($expected, $this->asset->getContent()); } @@ -83,7 +83,7 @@ public function testMutipleDefines() /** * Copyright */ -!function(){new Array(2,2,3,4);var bar=Array(a,b,c),var2=(new Array(5),new Array(a));function bar(foo){var2.push(foo)}bar("abc123")}(); +(()=>{new Array(2,2,3,4);var bar=Array(a,b,c),var2=(new Array(5),new Array(a));function bar(foo){var2.push(foo)}bar("abc123")})(); JS; $this->assertEquals($expected, $this->asset->getContent()); } @@ -98,7 +98,7 @@ public function testUnsafeUglify() /** * Copyright */ -"undefined"==typeof DEBUG&&(DEBUG=!0),"undefined"==typeof FOO&&(FOO=1),function(){FOO;var bar=[a,b,c],var2=Array(a);function bar(foo){var2.push(foo)}DEBUG&&console.log("hellow world"),bar("abc123")}(); +"undefined"==typeof DEBUG&&(DEBUG=!0),"undefined"==typeof FOO&&(FOO=1),(()=>{FOO;var bar=[a,b,c],var2=Array(a);function bar(foo){var2.push(foo)}DEBUG&&console.log("hellow world"),bar("abc123")})(); JS; $this->assertEquals($expected, $this->asset->getContent()); }