diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 1b9337a..3ac9a42 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -35,9 +35,12 @@ parameters: - rector.php (?) - .php-cs-fixer.dist.php (?) - # XOOPS core classes (XoopsObject, handlers, Criteria, $xoopsDB, …) are not - # composer-autoloadable during analysis. Signatures come from this stub. - stubFiles: + # XOOPS core classes (XoopsObject, XoopsPreloadItem, handlers, Criteria, …) are + # not composer-autoloadable during analysis. Use `scanFiles` (NOT `stubFiles`) so + # the classes are registered as existing and `extends`/`implements` resolve — + # `stubFiles` only refines signatures of classes PHPStan can already discover, so a + # module extending a core class would hit a non-ignorable `class.notFound`. + scanFiles: - stubs/xoops.stub bootstrapFiles: diff --git a/stubs/xoops.stub b/stubs/xoops.stub index 380167c..3faa96b 100644 --- a/stubs/xoops.stub +++ b/stubs/xoops.stub @@ -175,6 +175,11 @@ namespace { { public static function getByDirname(string $dirname): mixed {} } + + class XoopsPreloadItem + { + public function __construct() {} + } } namespace Xmf\Module {