Download the PHP package saschaegerer/phpstan-typo3 without Composer
On this page you can find all versions of the php package saschaegerer/phpstan-typo3. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download saschaegerer/phpstan-typo3
More information about saschaegerer/phpstan-typo3
Files in saschaegerer/phpstan-typo3
Package phpstan-typo3
Short Description TYPO3 CMS class reflection extension for PHPStan
License MIT
Informations about the package phpstan-typo3
PHPStan TYPO3 extensions and rules
TYPO3 CMS class reflection extension for PHPStan & framework-specific rules.
This extension provides the following features (!!! not an exhaustive list !!!):
Dynamic Return Type Extensions
- Provides correct return type for
\TYPO3\CMS\Core\Context\Context->getAspect()
. - Provides correct return type for
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance()
. - Provides correct return type for
\TYPO3\CMS\Extbase\Object\ObjectManagerInterface->get()
. - Provides correct return type for
\TYPO3\CMS\Extbase\Object\ObjectManager->get()
. - Provides correct return type for
\TYPO3\CMS\Extbase\Property\PropertyMapper->convert()
. - Provides correct return type for
\TYPO3\CMS\Core\Utility\MathUtility
methods like isIntegerInRange. - Provides correct return type for
\TYPO3\CMS\Extbase\Persistence\Generic\Query->execute()
. - Provides correct return type for
\TYPO3\CMS\Extbase\Persistence\QueryInterface->execute()
. - Provides correct return type for
\TYPO3\CMS\Core\Site\Entity\Site->getAttribute()
. - Provides correct return type for
\Psr\Http\Message\ServerRequestInterface->getAttribute()
. - Uses under the hood bnf/phpstan-psr-container
All these dynamic return type extensions are necessary to teach PHPStan what type will be returned by the specific method call.
Show me a practical use case.
For example PHPStan cannot know innately what type will be returned if you call `\TYPO3\CMS\Core\Utility\MathUtility->forceIntegerInRange(1000, 1, 10)`. It will be an int<10>. With the help of this library PHPStan also knows what´s going up. Imagine the following situation in your code: PHPStan will tell you that the if condition is superfluous, because the variable $integer will never be higher than 10. Right?Framework specific rules
- Provides rule for
\TYPO3\CMS\Core\Context\Context->getAspect()
. - Provides rule for
\Psr\Http\Message\ServerRequestInterface->getAttribute()
. - Provides rule for
\TYPO3\CMS\Core\Site\Entity\Site->getAttribute()
. - Provides rule for
\TYPO3\CMS\Extbase\Validation\ValidatorResolver->createValidator()
.
Show me a practical use case.
For example PHPStan cannot know innately that calling `ValidatorResolver->createValidator(RegularExpressionValidator::class)` is invalid, because we miss to pass the required option `regularExpression`. With the help of this library PHPStan now complaints that we have missed to pass the required option. So go ahead and find bugs in your code without running it.Installation & Configuration
To use this extension, require it in Composer:
If you also install phpstan/extension-installer then you're all set!
Manual installation
If you don't want to use `phpstan/extension-installer`, put this into your phpstan.neon config:Custom Context API Aspects
If you use custom aspects for the TYPO3 Context API you can add a mapping so PHPStan knows what type of aspect class is returned by the context API
Custom Request Attribute
If you use custom PSR-7 request attribute you can add a mapping so PHPStan knows what type of class is returned by Request::getAttribute()
Custom Site Attribute
If you use custom attributes for the TYPO3 Site API you can add a mapping so PHPStan knows what type is returned by the site API
Check for private Services
You have to provide a path to App_KernelDevelopmentDebugContainer.xml or similar XML file describing your container. This is generated by ssch/typo3-debug-dump-pass in your /var/cache/{TYPO3_CONTEXT}/ folder.
All versions of phpstan-typo3 with dependencies
phpstan/phpstan Version ^1.10.9
typo3/cms-core Version ^11.5 || ^12.4 || ^13.0
typo3/cms-extbase Version ^11.5 || ^12.4 || ^13.0
bnf/phpstan-psr-container Version ^1.0
composer/semver Version ^3.3
ssch/typo3-debug-dump-pass Version ^0.0.2
ext-simplexml Version *