From bd4c962014a935448e63228c9c2ba57f274b1f2d Mon Sep 17 00:00:00 2001 From: Shish Date: Mon, 17 Feb 2025 19:15:54 +0000 Subject: [PATCH] Add a hidden functions list, fixes #618 --- generated/8.4/functionsList.php | 1 - generated/8.4/rector-migrate.php | 1 - generated/8.5/functionsList.php | 1 - generated/8.5/rector-migrate.php | 1 - generator/config/hiddenFunctions.php | 11 +++++++++++ generator/src/Generator/FileCreator.php | 4 ++-- generator/src/XmlDocParser/Scanner.php | 14 +++++++++++++- 7 files changed, 26 insertions(+), 7 deletions(-) create mode 100644 generator/config/hiddenFunctions.php diff --git a/generated/8.4/functionsList.php b/generated/8.4/functionsList.php index 48025f0d..52ad6ba9 100644 --- a/generated/8.4/functionsList.php +++ b/generated/8.4/functionsList.php @@ -11,7 +11,6 @@ 'apcu_fetch', 'apcu_inc', 'apcu_sma_info', - 'array_all', 'base64_decode', 'bindtextdomain', 'bzclose', diff --git a/generated/8.4/rector-migrate.php b/generated/8.4/rector-migrate.php index 3dc8eeeb..a2103c0c 100644 --- a/generated/8.4/rector-migrate.php +++ b/generated/8.4/rector-migrate.php @@ -19,7 +19,6 @@ 'apcu_fetch' => 'Safe\apcu_fetch', 'apcu_inc' => 'Safe\apcu_inc', 'apcu_sma_info' => 'Safe\apcu_sma_info', - 'array_all' => 'Safe\array_all', 'base64_decode' => 'Safe\base64_decode', 'bindtextdomain' => 'Safe\bindtextdomain', 'bzclose' => 'Safe\bzclose', diff --git a/generated/8.5/functionsList.php b/generated/8.5/functionsList.php index a9f99cdd..ce0f4c1b 100644 --- a/generated/8.5/functionsList.php +++ b/generated/8.5/functionsList.php @@ -11,7 +11,6 @@ 'apcu_fetch', 'apcu_inc', 'apcu_sma_info', - 'array_all', 'base64_decode', 'bindtextdomain', 'bzclose', diff --git a/generated/8.5/rector-migrate.php b/generated/8.5/rector-migrate.php index 2ca18547..b54acd31 100644 --- a/generated/8.5/rector-migrate.php +++ b/generated/8.5/rector-migrate.php @@ -19,7 +19,6 @@ 'apcu_fetch' => 'Safe\apcu_fetch', 'apcu_inc' => 'Safe\apcu_inc', 'apcu_sma_info' => 'Safe\apcu_sma_info', - 'array_all' => 'Safe\array_all', 'base64_decode' => 'Safe\base64_decode', 'bindtextdomain' => 'Safe\bindtextdomain', 'bzclose' => 'Safe\bzclose', diff --git a/generator/config/hiddenFunctions.php b/generator/config/hiddenFunctions.php new file mode 100644 index 00000000..6753c91e --- /dev/null +++ b/generator/config/hiddenFunctions.php @@ -0,0 +1,11 @@ +getFunctionName(); }, $functions); - $specialCases = Scanner::getSpecialCases(); - $functionNames = array_merge($functionNames, $specialCases); + $functionNames = array_merge($functionNames, Scanner::getSpecialCases()); + $functionNames = array_diff($functionNames, Scanner::getHiddenFunctions()); natcasesort($functionNames); return $functionNames; } diff --git a/generator/src/XmlDocParser/Scanner.php b/generator/src/XmlDocParser/Scanner.php index 009cbc0a..5ce543aa 100644 --- a/generator/src/XmlDocParser/Scanner.php +++ b/generator/src/XmlDocParser/Scanner.php @@ -23,7 +23,7 @@ class Scanner /** * @var string[] */ - private $ignoredModules; + private ?array $ignoredModules = null; public function __construct(private readonly string $path) { @@ -74,6 +74,7 @@ private function getIgnoredModules(): array { if ($this->ignoredModules === null) { $this->ignoredModules = require FileCreator::getSafeRootDir() . '/generator/config/ignoredModules.php'; + assert(!is_null($this->ignoredModules)); } return $this->ignoredModules; } @@ -95,6 +96,17 @@ public static function getSpecialCases(): array return $matches[1]; } + /** + * Get a list of functions defined in special_cases.php so that we + * can ignore them in the main list. + * + * @return string[] + */ + public static function getHiddenFunctions(): array + { + return require FileCreator::getSafeRootDir() . '/generator/config/hiddenFunctions.php'; + } + /** * @param SplFileInfo[] $paths */