friendsoftypo3 / phpstan-typo3
PHPStan 的 TYPO3 规则
0.9.0
2022-01-17 07:24 UTC
Requires
- php: ^7.2 || ^8.0 || ^8.1
- phpstan/phpstan: ^0.12.99 || ^1.2.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.3
- jangregor/phpstan-prophecy: ^0.6.2
- phpunit/phpunit: ^8.5
- symplify/easy-coding-standard: ^7.2
- typo3/cms-core: ^10.4 || 11.*.*@dev
- typo3/cms-extbase: ^10.4 || 11.*.*@dev
This package is auto-updated.
Last update: 2024-09-19 23:06:44 UTC
README
TYPO3 CMS 类反射扩展,用于 PHPStan 和框架特定规则
本扩展提供以下功能
- 为
\TYPO3\CMS\Core\Context\Context->getAspect()
提供正确的返回类型。 - 为
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance()
提供正确的返回类型。 - 为
\TYPO3\CMS\Extbase\Object\ObjectManagerInterface->get()
提供正确的返回类型。 - 为
\TYPO3\CMS\Extbase\Object\ObjectManager->get()
提供正确的返回类型。 - 为
\TYPO3\CMS\Extbase\Persistence\Generic\Query->execute()
提供正确的返回类型。 - 为
\TYPO3\CMS\Extbase\Persistence\QueryInterface->execute()
提供正确的返回类型。
关于 GeneralUtility::makeInstance() 的详细信息
以下情况返回动态返回类型:
GeneralUtility::makeInstance(\TYPO3\CMS\Core\DataHandling\DataHandler::class)
GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\DataHandling\\DataHandler')
GeneralUtility::makeInstance(self::class)
GeneralUtility::makeInstance(static::class)
关于 ObjectManagerInterface::get() 和 ObjectManager::get() 的详细信息
以下情况返回动态返回类型:
ObjectManager->get(\TYPO3\CMS\Core\DataHandling\DataHandler::class)
ObjectManager->get('TYPO3\\CMS\\Core\\DataHandling\\DataHandler')
ObjectManager->get(self::class)
ObjectManager->get(static::class)
安装与配置
要使用此扩展,请在 Composer 中要求它
composer require friendsoftypo3/phpstan-typo3 --dev
安装后,将以下内容添加到您的 phpstan.neon
配置文件中
includes:
- vendor/friendsoftypo3/phpstan-typo3/extension.neon
常见问题解答
我发现了这个扩展和 Sascha 的(
saschaegerer/phpstan-typo3
)扩展。为什么有两个扩展?我应该使用哪一个?
这个包有一个特定的目的。它是为了帮助使 TYPO3 核心与 phpstan max 级别兼容。为了实现这一点,核心团队需要能够拥有自己的扩展,以便在核心本身更改时能够快速调整。例如,如果发布了一个新的核心版本,核心团队可以快速提高 typo3/cms-core
和 typo3/cms-extbase
的依赖性约束,而这在使用 Sascha 的包时是无法做到的。
Sascha 的包中包含的动态返回类型提供者目前(尚未)需要使核心与 phpstan 兼容。
总结一下:这两个扩展之间没有竞争,这个扩展不应由用户使用,而应仅由 TYPO3 核心使用。