Update PHPStan packages to v2 (major) - autoclosed
This MR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| phpstan/phpstan |
^1.10 -> ^2.0
|
||
| phpstan/phpstan-symfony |
^1.3 -> ^2.0
|
Release Notes
phpstan/phpstan (phpstan/phpstan)
v2.1.22
Improvements 🔧
- Allow PHP 8.5 as max version (#4188, #4192), thanks @kubawerlos!
- Use authoritative Attribute stub (#4192)
Bugfixes 🐛
- Fix args are mistakenly handled as immediately-invoked (#4145), #13288, #13311, #13331, #13307, #12119, thanks @staabm!
- Fixed
HasOffsetValueTypeaccessory missing main type (#4162, https://github.com/phpstan/phpstan-src/commit/56a30c2e06c33f6af2639aa7a58c901962539c31), #13270, thanks @staabm! - Fix missing detection of dead code in arrow functions (#4147), thanks @staabm!
- Fix missing detection of dead code in closures (#4148) (#4148), thanks @staabm!
- Fix
array_key_existsnarrows$keytoo much (#4151), #11724, thanks @staabm!
Function signature fixes 🤖
- Remove couchbase from functionmap (#4185), #5642, thanks @VincentLanglet!
- Use benevolent union for
stream_get_contents()return type (#4146) (#4146), #13289, thanks @staabm!
Internals 🔍
v2.1.21
Improvements 🔧
- Update nikic/PHP-Parser to 5.6.0 (https://github.com/phpstan/phpstan-src/commit/90f8b11d423e18ff00fd4927907230b22edebcee)
Bugfixes 🐛
- Fix unnecessary wrapping in TableErrorFormatter (#4170), #13317, thanks @schlndh!
- Fix return value type inference of FuncCall on FuncCall (#4184), #13296, thanks @VincentLanglet!
- Fix version_compare return type (#4178), #4457, thanks @VincentLanglet!
Internals 🔍
- Put PHPUnit cache under
tmp/(#4169), thanks @staabm! - Add regression tests for already solved issues (#4174, #4173, #4172), thanks @VincentLanglet!
v2.1.20
Bugfixes 🐛
- Fix "will always evaluate to true" function call with named arguments (https://github.com/phpstan/phpstan-src/commit/1f150cc9ae1fcab992aca658f317b91d0757107f), #13291
- Fix Invalid "UTF-8" string error when using TableErrorFormatter (#4163), #13292, thanks @schlndh!
v2.1.19
Improvements 🔧
- Remove manual wrapping for error table (#4035), thanks @schlndh!
- Improve array_search inference (#4014), thanks @VincentLanglet!
- Improve
str_split()return type (#3999), thanks @VincentLanglet! - Detect more duplicate array keys (#4116), thanks @VincentLanglet!
- Add support for multiple identifiers in ignoreErrors configuration (#4080), thanks @janedbal!
- Fix missing detection of dead code in expressions (#4090), #13232, #11909, thanks @staabm!
Bugfixes 🐛
- Fix
IntersectionType::isIterableOnce()(#4106), #13248, thanks @VincentLanglet! - Fix false positive unreachable (#4112), #7531, thanks @VincentLanglet!
- Improve array filter return type on PHP 8 (#4123), #12689, thanks @VincentLanglet!
- Fix analysis on
array_mapwith named arguments (#3763), #12317, thanks @takaram! - Fix
ObjectType::getOffsetValueType()(#4126), #12125, #9575, #9456, #13144, thanks @VincentLanglet! - Fix for respecting rule levels for
property.nameNotString(#4117), #13271 - Improve trim on numeric string (#4130), #10860, thanks @VincentLanglet!
- Fix intersection with substracted (#4132), thanks @VincentLanglet!
- Understand at least one argument for non empty array unpacked (#4134), #10020, #8506, thanks @VincentLanglet!
- Handle empty array case via
ConstantArrayType::spliceArray()(#4140), #13279, thanks @herndlm! - Fix lowercase string usage in template (#4122), #12739, thanks @VincentLanglet!
- Fix "Unsafe use of new static when trait enforces constructor via abstract method" (#4114), #9654, thanks @VincentLanglet!
- Nothing is lower than null (#4131), #10719, #9141, thanks @VincentLanglet!
- Hotfix - allow people to override
exceptionTypeResolverin neon (https://github.com/phpstan/phpstan-src/commit/e7febc360c027957945e1e8667b412952d0bca12)
Function signature fixes 🤖
- Improve sys_getloadavg return type (#4107), #13198, thanks @VincentLanglet!
- Fix PDO quote return type (#4113), #10512, thanks @VincentLanglet!
- Fix pg_lo_import definition (#4120), thanks @VincentLanglet!
- Update eio function return type (#4124), thanks @VincentLanglet!
- Update
stream_filter_*signatures (#4125), #12380, thanks @VincentLanglet! - Update DomNode return type (#4137), thanks @VincentLanglet!
- Update Spl methods with side effects (#4129), #10884, #9180, thanks @VincentLanglet!
- Fix odbc definitions (#4119), thanks @VincentLanglet!
Internals 🔍
- Added regression test (#4105), #8372, thanks @staabm!
- Added regression test (#4109), #13043, thanks @VincentLanglet!
- Add regression tests for strict rules issues (#4110), https://github.com/phpstan/phpstan-strict-rules/issues/147, https://github.com/phpstan/phpstan-strict-rules/issues/143, thanks @VincentLanglet!
- Fix function name typo (#4118), thanks @VincentLanglet!
- Fix typo in error message in
#[RequiresPhp]attribute rule (#4127), thanks @takaram! - Update bashunit:0.22.0 (#4133), thanks @Chemaclass!
- Add regression test (#4135), #9706, thanks @VincentLanglet!
- Add regression test (#4136), #9401, thanks @VincentLanglet!
- Introduce
dumpNativeType(#4108), thanks @VincentLanglet!
v2.1.18
Bleeding edge 🔪
- Name string expr check in ClassConstantRule (#3910), thanks @zonuexe!
- Name string expr check in AccessPropertiesCheck (#4094), thanks @zonuexe!
If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:
includes:
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more
Improvements 🔧
- Add
@phpstan-sealedsupport (#4095), thanks @VincentLanglet! - This release includes improvements and bugfixes from PHPStan 1.12.28
- Validate registered services tags against implemented interface (https://github.com/phpstan/phpstan-src/commit/f375a814c453ee4220322e238d5d1ace59810f45)
- Only change exit code with
--fail-without-result-cachewhen the error formatter returns 0 (https://github.com/phpstan/phpstan-src/commit/df9fa6e04b636bbcd16d49ec213f13fbb45026a6) - Normalize arguments before calling into TypeSpecifyingExtensions (#4034), #13088, thanks @staabm!
- Use
count()return type inObjectType::getArraySize()(#4072, #4078), thanks @vojtech-dobes! - Add method to get ObjectType from ClassReflection and EnumCaseReflection (#4099), thanks @calebdw!
- Playground & Issue bot: PhpdocCommentRule (#4074), thanks @staabm!
- Describe array shape key in quotes unless valid identifier (#4071), thanks @vojtech-dobes!
- Improve TrimDynamicReturnType for constant strings (#4028), thanks @VincentLanglet!
- Introduce ArrayPadDynamicReturnTypeExtension (#4017), #12305, thanks @VincentLanglet!
- Introduce
PDO::connectdynamic method return type extension (#4015), #12359, thanks @VincentLanglet! - Add
PhpVersion::__constructto BC promise (#4022), #8582, thanks @VincentLanglet! - Support
switchon::class(#4011), #13069, thanks @VincentLanglet! - More precise
array_keysreturn type (#3590), #11928, thanks @staabm!
Bugfixes 🐛
- Fix
ClosureType::equals()for pure/impure closures (https://github.com/phpstan/phpstan-src/commit/02066c7350e4a60a5cdcabacc613bd62ae0bf907), #13067 - Fix for benevolent union (#4039), #13098, thanks @VincentLanglet!
- Fix resolving generics from phpstorm-stubs (https://github.com/phpstan/phpstan-src/commit/c0f2e9e9235db973784d88b107bc8c14ecb647d0), #13171
- Correctly retrieve hasSideEffects metadata for inherited methods (#4079), #13201, thanks @zonuexe!
- ObjectType: fix hasConstant behaviour (#4089), thanks @janedbal!
- Explicitly use StreamSelectLoop for PHPStan Pro download (#4077), thanks @calebdw!
- stream_get_contents() does not return FALSE unless an invalid position is provided (#4092), #3396, thanks @staabm!
- Revert "non-falsy-string cannot be converted to 0" (#3997), thanks @VincentLanglet!
- Improve return type of array map by invoking dynamic function return type extensions for the callback (#4068), #11180, #3156, thanks @VincentLanglet!
- Avoid false positive
in_array()always true (#4073), #13151, #8818, #12755, #12412, thanks @VincentLanglet! - Fix always-true detection in in_array with union type haystack (#3888), #12755, thanks @sayuprc!
- Fix NAN inferences (#4040), #13097, thanks @VincentLanglet!
- Fix
MixedType->equals(ErrorType)(#3934), thanks @staabm! - Handle class without namespace for internal rule (#3998), #13041, thanks @VincentLanglet!
- Resolve substr based on configured PHP version instead of runtime PHP version (#4061), #13129, thanks @VincentLanglet!
- Keep list on
unset()with nested dim fetch (#3964), #12927, #12330, #11171, #8282, #12754, thanks @staabm!
Function signature fixes 🤖
- These DateTimeInterface methods are pure (https://github.com/phpstan/phpstan-src/commit/7534ee1a3755ac6c1a9f563159dbc9a0756993f5)
- More precise return type for
posix_getpwnam()(#4091), #12254, thanks @zonuexe! - Fix
SimpleXMLElement::xpathreturn type (#4096), thanks @VincentLanglet! - Fix fwrite (#4087), thanks @VincentLanglet!
- Update
locale_get_display_x()return types (#4085), thanks @cfahner! - Fix
DOMElement::$attributesstub (#4029), #13076, thanks @VincentLanglet! - Improve mb detect encoding signature (#4020), #8922, thanks @VincentLanglet!
Internals 🔍
- Moved the list of relative paths in parameters to
parametersSchema.neon(https://github.com/phpstan/phpstan-src/commit/72c2a8da27960198a00c40075649d71a6a4fdebb)- This now allows extensions to declare which of their custom parameters should be treated as relative path to expand
- Scaffolding for auto-fixable rules
- This feature will be fully released in PHPStan 2.2.0
-
phpstan-src embraces attributes!
- This is enabled thanks to olvlvl/composer-attribute-collector and AutowiredAttributeServicesExtension
- PHPStan still supports PHP 7.4 because this package bakes compiled list of classes and parameters with attributes to a plain PHP file
vendor/attributes.php. - Slimmer config files
- Services are now registered with the help of these attributes:
- Rules and collectors for specific levels are registered with:
- phpstan-src now includes more custom opinionated rules specific to development of PHPStan itself
- Attributes must have named arguments (https://github.com/phpstan/phpstan-src/commit/676ad27fc14abf18ebd026c0247b61ad9d568d92)
- Use named arguments instead of passing default parameter values https://github.com/phpstan/phpstan-src/commit/35fbc87a4b05a2f4884480a3e0f5dbd61a8b49a5
- As a limitation of simple-downgrader, this does not apply to MethodCall. Only to New_, StaticCall, and FuncCall.
- Add
#[Override]for methods overriding 3rd party (https://github.com/phpstan/phpstan-src/commit/98ed73222bb3a69e58f5633074041a65256673b6) - SkipTestsWithRequiresPhpAttributeRule (https://github.com/phpstan/phpstan-src/pull/4056/commits/6851343e570bc1e79580972243deed80b3bc5e39)
- Simplify property memoization for Flyweight pattern by replacing it with
??=(#4084), thanks @zonuexe! - Simplify by replacing chained
$var === constwithin_array()(#4098), thanks @zonuexe!
- DI Container - throw unprefixed exception (https://github.com/phpstan/phpstan-src/commit/24436631a3c69deb8d914dc01cb6486cc85d5680)
- Require Box with Composer (#2955)
- Use 7.4 for PHP-Scoper PHP version (#2955), thanks @ondrejmirtes!
- Update to PHPUnit 10 ((#4046))
- Update to PHPUnit 11 (#4057)
- Upgrade bashunit:0.20 (#4048), thanks @Chemaclass!
- Add
assertSuperTypetesting utility (#4066), thanks @vojtech-dobes! - Use str_starts_with() instead of strpos() (#4083), thanks @zonuexe!
- Avoid duplicating the same strpos() function call (#4083), thanks @zonuexe!
- Add
Type::spliceArray(), improvesplice_array()array type narrowing (#3952), thanks @herndlm!
v2.1.17
Major new features 🚀
- Introducing Editor Mode (https://github.com/phpstan/phpstan-src/commit/74b909aedcc6fd09721c02763ff2c440ce5d7999)
- Learn more: https://phpstan.org/user-guide/editor-mode
Bleeding edge 🔪
- Report
new static()in static method of abstract class - level 0 (https://github.com/phpstan/phpstan-src/commit/a5f7c060c8a091da391263decdef8025a3202d82)
If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:
includes:
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more
Improvements 🔧
- This release includes improvements and bugfixes from PHPStan 1.12.27
Bugfixes 🐛
- Fix
array_column()with explicit null$index_key(#3970), #12945, thanks @herndlm! - AlwaysRememberedExpr - use
getNativeExprType(https://github.com/phpstan/phpstan-src/commit/222676e94aeb92e1b73e7545db6c0d68e003b77e) - Invalidate result cache properly when property hook changes (https://github.com/phpstan/phpstan-src/commit/dff492e14c586368429893111ec4c950b4bd1748, https://github.com/phpstan/phpstan-src/commit/268d7c6388eaeef1675ef8eb807975bc42a4dc1a)
- Result cache - react to property having abstract/final/asymmetric visibility changed (https://github.com/phpstan/phpstan-src/commit/0ad2a6a6f207fa3a57ab0dd98c30459666dd152f)
- Result cache - react to property being virtual changing (https://github.com/phpstan/phpstan-src/commit/e33a560c71a7f1a52ae5f96158393ef441626aa5)
Function signature fixes 🤖
- Update
libxml_get_errors()(#3973), thanks @jack-worman!
Internals 🔍
- Call
ProcessPromise::cancel()from deferred canceller (https://github.com/phpstan/phpstan-src/commit/df4c1f39e9b63c2e58e7666c664f7c8ac2d74f26) - Solve some cases of dead code (https://github.com/phpstan/phpstan-src/commit/e1e8302327e791ce191f25a0b37f21d30e1cf7d6)
- Remove dead code (https://github.com/phpstan/phpstan-src/commit/d88e2fece595ca5190c1cf507f7b983bdd4695f8)
- Remove unused method from interface (https://github.com/phpstan/phpstan-src/commit/2ac0a171e66601ea3c1d80f7e4195a0f420d929c)
- Remove unused method from PathNotFoundException (https://github.com/phpstan/phpstan-src/commit/aaa1424c0f90fffc425c397219b26104a99e9231)
- Remove
getPhpDocReturnTypeWithUnresolvableTemplateTypesfromResolvedFunctionVariantWithCallable(https://github.com/phpstan/phpstan-src/commit/e3c76ade59ac2753d9ff073a7260d228bc424c50) - Remove more dead code (https://github.com/phpstan/phpstan-src/commit/2f66ec60f9d2a9ff9d8a87a914f31dd121a9ed18)
- Install & configure shipmonk/dead-code-detector (#3996), thanks @janedbal!
- Drop unused SymfonyStyle::getSymfonyStyle (#3996), thanks @janedbal!
- Drop unused NeonAdapter::dump (#3996), thanks @janedbal!
- Drop unused FileMonitor::getTotalFilesCount (#3996), thanks @janedbal!
- Drop unused SetterReflectionProviderProvider (#3996), thanks @janedbal!
- Drop dead dataProvider in ExistingClassesInTypehintsRuleTest (#3996), thanks @janedbal!
- Drop unused ResolvedPropertyReflection::getDeclaringTrait (#3996), thanks @janedbal!
- Drop unused ProcessPromise::getName (#3996), thanks @janedbal!
- Drop unused PhpDocBlock::isExplicit (#3996), thanks @janedbal!
- Drop dead TemplateTypeTrait::shouldGeneralizeInferredType (overwritten in all children) (#3996), thanks @janedbal!
- SimultaneousTypeTraverser to be covered by BC promise (#3996), thanks @janedbal!
v2.1.16
Improvements 🔧
- Support for
@finalPHPDoc tag above properties (#3990), #12999, thanks @lpd-au! - Faster ClassNameHelper (#3994), thanks @staabm!
Bugfixes 🐛
- DuplicateKeysInLiteralArraysRule: Fixed union type handling (#3993), #13013, #13022, thanks @staabm!
- Improve
preg_split()function return type (#3757), thanks @malsuke!
Function signature fixes 🤖
v2.1.15
Improvements 🔧
- This release includes improvements and bugfixes from PHPStan 1.12.26
- TableErrorFormatter: improve formatting of error tips (#3821), thanks @FeBe95!
- InstantiationRule - call RestrictedMethodUsageExtension for constructor (https://github.com/phpstan/phpstan-src/commit/8edfa9fa880141f97239229bbdefb54168cc2b78)
- Call RestrictedMethodUsageExtension for
__toStringmethods in(string)cast (https://github.com/phpstan/phpstan-src/commit/ce257d9acf2e182b2ae1c6fea06f7738986e54ab)
Bugfixes 🐛
- Fix GetDebugTypeFunctionReturnTypeExtension - should use TypeCombinator instead of
new UnionType(https://github.com/phpstan/phpstan-src/commit/1044f1112a0be3e4e6384ee7d35a66cd92e9cba6), #12512 - Remember value of arguments passed to
{min,max}()(#3928), #12731, thanks @cs278! - Revert "Useful PhpMethodReflection native type refactoring from #3966" (#3979), thanks @samsonasik!
- Respect asserts and throws on pure functions that return void (#3719), #12224, thanks @jack-worman!
- Disable purity check for non-final methods (#3913), #12382, thanks @VincentLanglet!
- Fix
IterableType::equals()withTemplateIterableType(#3991), thanks @staabm! - Restricted usage extensions - do not report false positives for Symfony polyfills (https://github.com/phpstan/phpstan-src/commit/4a907f16f034d42f5246a0fd72225f0fba0fcb0c), #12951
Function signature fixes 🤖
- Add stub for
DOMNode::hasAttributes(#3800), thanks @Niklan! - Update PhpStorm stubs (#3989), thanks @phpstan-bot!
- Remove MongoDB extension from function map (#3891), thanks @alcaeus!
Internals 🔍
- Replace error-prone
instanceof *Typein Rules classes (#3858), thanks @zonuexe! - Extract ArrayColumnHelper from ArrayColumnFunctionReturnTypeExtension (#3785), thanks @staabm!
v2.1.14
Bugfixes 🐛
- More precise property types after assignment when
strict_types=0(#3965), #12946, #12940, #12950, #12947, thanks @staabm! - Fix
array_slice()edge cases (#3959), thanks @herndlm! -
non-falsy-stringcannot be converted to0(#3971), thanks @staabm! - Fix crash on dynamic numeric-string symbols (#3975), #12949, thanks @staabm!
Internals 🔍
- Remove useless assign
$parentNode = $parentNode(#3938), thanks @samsonasik! - TypehintHelper: remove unneeded default param value (#3968), thanks @staabm!
- Useful PhpMethodReflection native type refactoring from #3966 (https://github.com/phpstan/phpstan-src/commit/3854cbc5748a7cb51ee0b86ceffe29bd0564bc98)
v2.1.13
Major new features 🚀
- Restricted Usage Extensions
Bleeding edge 🔪
- Report
@internalsymbols usage from outside their top namespace, #1178
If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:
includes:
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more
Improvements 🔧
- Improve return type of
array_splice()(#3947), thanks @herndlm! - Handle preserve_keys in
array_slice()for normal arrays (#3946), #12880, thanks @herndlm! - Improve
ConstantArrayType::sliceArray()with non constant integer args (#3949), thanks @herndlm! - TableErrorFormatter: visually differentiate phpstan assertion errors from rule errors (#3951), thanks @staabm!
Bugfixes 🐛
- Consider comparison as strict when type is the same (#3942), #12884, thanks @VincentLanglet!
- Fix wrong property type after assigning iterable type (https://github.com/phpstan/phpstan-src/commit/7c1ee34aa09798c2bb5ba182b078e436f0b7820c), #12891
-
Scope::rememberConstructorScope()should not remember the function scope (#3944), https://github.com/spaze/phpstan-disallowed-calls/issues/323, thanks @staabm! - Fix imprecise property native types after assignment (#3945), #12902, thanks @staabm!
- Fix invalidating static property access after impure call (#3950), #11019, #3747, #8523, #4864, #4443, thanks @staabm!
- More precise string functions return type with replacement array (#3963), #12928, thanks @staabm!
- Fix
session_set_cookie_paramscall with named arguments (https://github.com/phpstan/phpstan-src/commit/72e37dcf297752e074b214bd752f24617b7e6bb3), #12934
Internals 🔍
- MutatingScope: remove unnecessary callback functions (#3916), thanks @staabm!
- Fix occasional failure in ParallelAnalyserIntegrationTest (https://github.com/phpstan/phpstan-src/commit/4f5a63a5f577dbf9fecca53e8d6ea4ac64542f7a)
- MethodReflection - fix isInternal vs. isBuiltin (https://github.com/phpstan/phpstan-src/commit/3024c02e844d430759ac950261ba5c5aea52eb1b)
- Simplify degradation to general array in
ConstantArrayType::shuffle()(#3948), thanks @herndlm! -
ExtendedPropertyReflection::getName()(https://github.com/phpstan/phpstan-src/commit/ff198c9d121d658c150ce74f11bde000d665117d) - Micro optimize LazyInternalScopeFactory (#3962), thanks @staabm!
v2.1.12
Improvements 🔧
- Remember narrowed types from the constructor when analysing other methods (#3930), #12860, #10048, #11828, #9075, #6063, #12723, thanks @staabm!
- DeprecationExtensions: allow custom deprecation-marking logic (#3932), thanks @janedbal!
- TypeInferenceTestCase - show analysed symbols that do not exist next to failure (misconfigured autoloading) (https://github.com/phpstan/phpstan-src/commit/fdd5ad933d2264be29812eb713d0f15519d5cb3f, https://github.com/phpstan/phpstan-src/commit/a2834bcc6894f8d0dce299507735473cfa1f8f54)
- RuleTestCase - show analysed symbols that do not exist next to failure (misconfigured autoloading) (https://github.com/phpstan/phpstan-src/commit/c5cf14ba60139fb40a1e26973a115778a9e82815, https://github.com/phpstan/phpstan-src/commit/a2834bcc6894f8d0dce299507735473cfa1f8f54)
- Allow toggling
discoveringSymbolstip (#3929), https://github.com/phpstan/phpstan/discussions/12859, thanks @herndlm! - Faster processing of array comparisons with constant offsets (#3933), #12800, thanks @staabm!
- ClassReflection: narrow getNativeReflection after isEnum is true (#3925), thanks @janedbal!
- ResultCacheManager: support dots in parametersNotInvalidatingCache (#3939), thanks @janedbal!
- ResultCacheManager: configurable days causing cache skip (#3941), thanks @janedbal!
Bugfixes 🐛
- This release includes fixes from PHPStan 1.12.24
- RegexArrayShapeMatcher - enforce list type when no named captures (#3899), #12397, #11602, thanks @staabm!
- Fix elapsed time format for result cache restore time (#3890), thanks @janedbal!
- Limit int ranges when narrowing arrays via
count()(#3902), #12787, thanks @herndlm! - Fixed false positive about undefined property guarded with property_exists (https://github.com/phpstan/phpstan-src/commit/3d5293075344157864219e5833bbfa69d60ec7be)
- Fixed false positive about undefined method guarded with method_exists (https://github.com/phpstan/phpstan-src/commit/ae5562fc29737d3f4a724bdd351c23f1347d569d), #12793
- Offset on list definitely exists if there's HasOffsetType with higher number (#3905), #12605, thanks @staabm!
- Set offset on list keeps list if there's HasOffsetType for all preceeding offsets (#3909), thanks @staabm!
- Fix union/intersect involving enum case (#3907), #12163, thanks @schlndh!
- Fix lost list type if substituted a element via loop (#3908), #12274, thanks @staabm!
- Fix signature type for default-null parameters (#3912), #7522, #12282, thanks @VincentLanglet!
- ObjectType: fix isEnum (#3915), #12832, thanks @janedbal!
- Fix
matches[0]type for regexes containing\K(#3920), #12792, thanks @mvorisek! - TypeCombinator returns
non-empty-arrayfor union ofisIterableAtLeastOnce()->yes()(#3937), #12847, thanks @staabm!
Function signature fixes 🤖
- More precise return type for strspn and strcspn (#3918), thanks @claudepache!
- Improve
getopt()function stub (#3655), #12103, thanks @janedbal!
Internals 🔍
v2.1.11
Improvements 🔧
Bugfixes 🐛
- Fix narrowing of superglobals (#3901), #12771, #12772, #12776, thanks @herndlm!
- String value passed to Identifier cannot be empty (https://github.com/phpstan/phpstan-src/commit/a3039ef58efe8b303e9618272e50dfe85e74ff53), #12778
Function signature fixes 🤖
v2.1.10
Bugfixes 🐛
- Fix condition of fall-through case not used for exhaustive checks (#3900), #11064, #3488, #8719, #12722, thanks @rvanvelzen!
- Fix calling getVariableType without checking hasVariableType first (https://github.com/phpstan/phpstan-src/commit/72d2f3b5b10faf9f388ad68b8271ece94bb53bc5), #12767
v2.1.9
Improvements 🔧
- This release includes fixes and improvements from PHPStan 1.12.22
- Collected data: reduce memory consumption & result cache size (#3879), thanks @janedbal!
- Detect accessing static property as non static (#3857), #12692, thanks @jnoordsij!
- Infer types of variables with dynamic name (https://github.com/phpstan/phpstan-src/commit/7d4dcb5e48ef063cef058655a61e160ca6725541, https://github.com/phpstan/phpstan-src/commit/0df0c6f34b38e75daf5bfb53d1fe088c78d30b97), #12398
- Infer types of property fetch with dynamic name (https://github.com/phpstan/phpstan-src/commit/8bb0670cffd471f2f1dfc39cc002cbaf2bbbfeb2)
- Infer types of StaticCall with dynamic name (https://github.com/phpstan/phpstan-src/commit/51a867f439b55960de460223af0e3b125414fc5c)
- Infer types of MethodCall with dynamic name (https://github.com/phpstan/phpstan-src/commit/244093e4f43a58a6dcbb596ea2eac1e042016ac1)
- Infer types of StaticPropertyFetch with a dynamic name (https://github.com/phpstan/phpstan-src/commit/2fe4e0f94e75fe8844a21fdb81799f01f0591dfe)
- Support dynamic Expr name expressions in rules (#3886), thanks @zonuexe!
- Improve
count()narrowing of constant arrays (#3709), #12190, #3631, thanks @herndlm! - Support narrowing a constant array to a list with count (#3878), thanks @staabm!
- Treat
#[Pure(true)]in PhpStorm stubs ashasSideEffects => true(#3880), #6345, #12577, #10342, thanks @zonuexe! - excludePaths: include example for optional path (#3883), thanks @thePanz!
- Narrow type on setting offsets of properties (#3699), #6398, #6571, #12565, thanks @herndlm!
Bugfixes 🐛
- Fix false positives on non-existing array offsets (#3766), #8649, thanks @staabm!
- Fix false positives on existing offsets after assign (#3874), #12406, #11679, thanks @staabm!
- Fix false positives on non-existing offsets of superglobals (#3871), #11447, thanks @staabm!
- Fix
count()regression (#3895), thanks @staabm! - Remove
count()narrowing handling of empty array (#3896), thanks @herndlm! - Avoid falsely specifying never types via
count()(#3898), thanks @herndlm! - Constant array with negative keys cannot be a list (#3870), #12708, thanks @watasuke102!
- Do not report constructor unused parameter if implemented interface has a constructor (#3777), #11454, thanks @carlos-granados!
- Fix JSON error formatter when files are empty (#3798), thanks @shyim!
- Fix readonly property assign with ArrayAccess offset (#3817), #8929, #12537, thanks @herndlm!
Internals 🔍
- RuleTestCase: set
shouldPolluteScopeWithLoopInitialAssignmentsto true which is PHPStan's default behaviour (https://github.com/phpstan/phpstan-src/commit/1b56b0c1e0fb7ad574d8d13e4ee63fb05716fa9c) - ResultCache: allow customization of params not invalidating cache (#3877), thanks @janedbal!
- RegexArrayShapeMatcher - turn more details immutable (#3892), thanks @staabm!
v2.1.8
Improvements 🔧
-
@readonlyproperty cannot be passed by-ref (#3850), #12676, thanks @staabm! - ClassReflection - cannot be a subclass of final-overriden class (https://github.com/phpstan/phpstan-src/commit/ed4ea0a3b5784e3e39b28cff2fc92b6445a48419)
- Deprecated
ClassReflection::isSubclassOf(string $className)in favour ofClassReflection::isSubclassOfClass(ClassReflection $class)- If you just have
string $classNameinstead ofClassReflectionand you are too lazy to get ClassReflection via ReflectionProvider, you can still useClassReflection::is(string $className)
- If you just have
Bugfixes 🐛
- This release includes fixes from PHPStan 1.12.21
- Cannot override being final for abstract classes (https://github.com/phpstan/phpstan-src/commit/9bb2ed5b90d76d416a985eeb67411999be187263)
- Fix unsetting array item triggering
unset.possiblyHookedProperty(#3855), #12695, thanks @staabm! - UnusedPrivatePropertyRule - handle virtual properties that can only be read or only written (https://github.com/phpstan/phpstan-src/commit/da737711e4017bac54ce133e0c074d094daf1969, https://github.com/phpstan/phpstan-src/commit/12185abf062ea03e51dae9226b35a6639bee0cd5), #12702
- Faster analysis with a big const array in a class (#3862), #12159, thanks @staabm!
Internals 🔍
- Fix typo false-positive (#3856), thanks @staabm!
- Reduce method calls in ExpressionTypeHolder (#3859), thanks @staabm!
- Faster
TrinaryLogic::and()(#3860), thanks @staabm! - Faster
MutatingScope::mergeWith()(#3861), thanks @staabm! - Added regression test (#3863), thanks @staabm!
v2.1.7
Improvements 🔧
- Introduce
IgnoreErrorExtension(#3783), thanks @ruudk! - Understand that
new Foo()cannot be a subclass (#3853) - Object type narrowed after
$a::classandget_class($a)cannot be a subclass (https://github.com/phpstan/phpstan-src/commit/772f2979425574897b525de95dd8a535e1882f39) - Teamcity - show rule identifier when verbose output is set (#3804), thanks @kamil-zacek!
- Class constants cannot be directly accessed on a trait (https://github.com/phpstan/phpstan-src/commit/d56d0842ca297ad6cc4ac3cf3918433ed8a80394)
- Hooked properties cannot be both final and private (#3830), #12336, thanks @staabm!
- Hooked properties cannot be both abstract and private (#3839), #12336, thanks @staabm!
- Implement FinalPrivateConstantRule (#3838), thanks @staabm!
- Readonly properties cannot be
unset()(#3827), #12421, thanks @staabm! - Hooked properties cannot be
unset()(#3842), #12336, thanks @staabm! - Handle BcMath\Number overloaded operators (#3787), #12099, thanks @schlndh!
- TypeNodeResolver - check for existing
Integerclass before resolving toint(#3848), #12660, thanks @stepo2!
Bugfixes 🐛
- This release includes fixes from PHPStan 1.12.20
- Fix
ClassLike::$namespacedName must not be accessed before initialization(https://github.com/phpstan/phpstan-src/commit/948f79d2da9e3767129b5432730fcbdec44995dc), #12627 - Fix referencing
%env%inincludes(https://github.com/phpstan/phpstan-src/commit/d4d7e116a20b179ca1502b651fd0b779e8fede6a), #12606 - Property can be written in get hook (https://github.com/phpstan/phpstan-src/commit/8de182dbdeff1bcff34cc6c0b24ed379f77bbc42), #12621
- Fix scope in enum match arm body (#3786), #12422, thanks @dmytro-dymarchuk!
- Fix integer range pow issues (#3787), #7937, #8555, thanks @schlndh!
- Fix GetNonVirtualPropertyHookReadRule on abstract property (#3845), thanks @staabm!
- VarTagTypeRuleHelper - remove namespace and uses from NameScope (https://github.com/phpstan/phpstan-src/commit/189a4cc4c3875c1e8f4c19b3ea4b7aa89e88f919)
Function signature fixes 🤖
- Change return type of
ResourceBundle::getLocales(#3840), #12579, thanks @mat-se! - Make precise
scandir()argument and return type (#3808), thanks @zonuexe! - More precise return type for
mysqli_fetch_all()(#3778), thanks @oxan!
Internals 🔍
- StrlenFunctionReturnTypeExtension: Cleanup
instanceof ConstantString(#3780), thanks @staabm! - Adjust and make space for tests for new behaviour of
new(#3852)
v2.1.6
Improvements 🔧
- This release includes improvements from PHPStan 1.12.19
- PHP 8.4: Overriding property - when overriding readable property, the property has to be readable (same for writable) (https://github.com/phpstan/phpstan-src/commit/924a7a2f647acd3c62a054c4358c13c0b1cc2886)
- ClassReflection - hasProperty cache (https://github.com/phpstan/phpstan-src/commit/73d7b88d60f4b8ebbff777060f8bc4e5e25bde12)
- Updated phpdoc-parser
- Allow multiple new lines in union and intersection declaration (https://github.com/phpstan/phpdoc-parser/pull/265), thanks @DaDeather!
- TypeParser - support comments at EOL with
//(https://github.com/phpstan/phpdoc-parser/pull/264), https://github.com/phpstan/phpdoc-parser/issues/184, thanks @shmax!
Bugfixes 🐛
- Do not report constructor unused parameter if class is an Attribute class (#3776), #7165, thanks @carlos-granados!
Internals 🔍
- Test for set-hooked property being overriden by readonly property (https://github.com/phpstan/phpstan-src/commit/d3909c7fbf169069d8099ec67a3a0cd75ce873af)
v2.1.5
Improvements 🔧
- Hooked property cannot be static (#3810), #12336, thanks @jakubtobiasz!
- Array shape from general array with single finite key (https://github.com/phpstan/phpstan-src/commit/6c45175093157f773725e70e4dd3c4f316027f67, https://github.com/phpstan/phpstan-src/commit/8a5bfb9208891055ecff4a39586d542b70546f82)
- Allows
array<value-of<MyEnum::FIRST>, X>to create an array shape where the key is backed enum case value
- Allows
- Update phpdoc-parser (https://github.com/phpstan/phpstan-src/commit/d25a815b1069174acf3efe97812617d679f30769)
- TypeParser: Allow multiple newlines and also allow multiline union and intersection types for array shapes (https://github.com/phpstan/phpdoc-parser/pull/263), https://github.com/phpstan/phpdoc-parser/issues/258, https://github.com/phpstan/phpdoc-parser/issues/183, thanks @DaDeather!
Bugfixes 🐛
- This release includes fixes from PHPStan 1.12.18
- Fix
GenericStaticTypein@phpstan-self-out, use@phpstan-self-outtype when returning$this(https://github.com/phpstan/phpstan-src/commit/dab99cba7be39fb71c70e42373ff40dca64b82ad), #12575, #12548, #8439, #8316, #8275 - Fix
@phpstan-self-outwith GenericStaticType when method is called on$this(https://github.com/phpstan/phpstan-src/commit/cf6476188b73036741e916e1e3e58972b53bb8b3) - Update BetterReflection (#3822)
- Fixed property from interface implemented by trait (https://github.com/Roave/BetterReflection/pull/1487), #12553, thanks @kukulich!
- Readonly property can override get-only property declared in interface (https://github.com/phpstan/phpstan-src/commit/0c8e9d2905371039cf453509e044d367529aa2b9), #12586
v2.1.4
Improvements 🔧
- PHP 8.4: Prevent setting a default value for a virtual property (#3812), #12336, thanks @jakubtobiasz!
Bugfixes 🐛
- PHP 8 stubs: Put built-in PHP enums in classes map instead of functions map, #12549, #12546
- https://github.com/phpstan/php-8-stubs/commit/3816597f86f912a2f9c34f70b3d9d0baf9053304
- https://github.com/phpstan/php-8-stubs/commit/97d994e9f3bc539ccabf2392a6e478cdf25a7940
- https://github.com/phpstan/phpstan-src/pull/3813
- https://github.com/phpstan/phpstan-src/commit/ad610cf827fa1025615ab8870dfb61b625ffbcf2
- Virtual property cannot be uninitialized (https://github.com/phpstan/phpstan-src/commit/b82230a48267ef3d55c568a707a5560b30ccea20), #12547
- Do not report invoking an aliased trait method by its original name as an error, #12544
Function signature fixes 🤖
v2.1.3
If you're using larastan/larastan PHPStan extension, please update to version 3.0.4 alongside PHPStan 2.1.3 for improved compatibility with the new generic static<...> type. Thank you.
This release includes fixes and improvements from PHPStan 1.12.17. Most impportantly it introduces GenericStaticType - support for static<...> (#1289), #12485, #11398, #10417, #9807, #9449, #8623, #5512
Improvements 🔧
- Look for overriden property prototype in implemented interfaces (https://github.com/phpstan/phpstan-src/commit/b3ca610fb4ae14d46da6f14d77499b35195ae40d)
- AttributeReflection for easy attributes reading (https://github.com/phpstan/phpstan-src/commit/a387fa32788fd38bc35313558f6e6a46fc2c451c), #10443, #9618
- You can now call
->getAttributes()on any thinkable reflection object, including$scope->getFunction()and you'll get a new PHPStan's AttributeReflection class: https://apiref.phpstan.org/2.1.x/PHPStan.Reflection.AttributeReflection.html - See https://github.com/phpstan/phpstan/discussions/12510
- You can now call
- Prevent declaring hooked properties as readonly (#3803), #12525, thanks @jakubtobiasz!
- Improved support for enum-string types (#3807), thanks @zonuexe!
Bugfixes 🐛
- Do not check abstract properties as uninitialized (https://github.com/phpstan/phpstan-src/commit/1cc534759f1cbb5ae05f2e3057d0f487a572aa12), #12466
- Properties might be covariant or contravariant, depending on the allowed operations on the parent (https://github.com/phpstan/phpstan-src/commit/50f8e491212197ca317b169e5c67978215ef4a0f), #12466
- Enable usage of
ReflectionClass::isSubclassOf()with invariant@template T(https://github.com/phpstan/phpstan-src/commit/4f2af3bcdfec8699598303ee7a9bf49b4938a0ba), #12473 - Fix crash on unknown trait use:
array_combine()args must have the same number of elements (https://github.com/ondrejmirtes/BetterReflection/commit/36f3291bd53f057a50613a99cbd805464723a94b), #12327
Function signature fixes 🤖
- fix ext-amqp signatures (#3793), #12469, #12461, thanks @esler!
-
Imagick::getConfigureOptions()returns array instead of string (#3801), thanks @blankse!
Internals 🔍
- Issue bot - skip
phpstanPlayground.configParametererrors (https://github.com/phpstan/phpstan-src/commit/71d032761916517f18932bdee69c9468d8e83c84) - Cleanup (https://github.com/phpstan/phpstan-src/commit/0b28f6001b4d308e9fbfe3cb7feff6c259f47cc2)
- Add a test covering a hooked property in a readonly class (#3809), thanks @jakubtobiasz!
v2.1.2
Improvements 🔧
- Add support for result cache meta extensions (#3765), https://github.com/phpstan/phpstan-symfony/issues/255, thanks @Wirone!
- Overwrite property expression type only if it's subtype of the native type (https://github.com/phpstan/phpstan-src/commit/eb0e0bcfe2e4947d06c5eb680f5cf568a688ff4a, https://github.com/phpstan/phpstan-src/commit/bed30a79f4ed17651c48c031b89b60d4ce7453b2), #12438, #12393
- Enabling constructor check for class-string variables (#3661), thanks @sayuprc!
- PHP 8.4: ReflectionClass stub with lazy object methods (https://github.com/phpstan/phpstan-src/commit/25ec5eb2db6474f95a0b9dcac1cca8210ea1a021), #12435
Bugfixes 🐛
- This release includes fixes from PHPStan 1.12.16
- BooleanType - implement getConstantScalarTypes (#3781), thanks @staabm!
Function signature fixes 🤖
- shell_exec - add
falseto the return type (#3730), thanks @sreichel! - Fix
samesitecookie argument precision (https://github.com/phpstan/phpstan-src/commit/a54cdb0675e23385adba9d1b2b9e643994fa20d7)
Internals 🔍
- Pass ExtendedMethodReflection into AlwaysUsedMethodExtension (https://github.com/phpstan/phpstan-src/commit/5d35811a87a85aeaac6a16824391a948c9a62335)
- Remove private method
ConstantArrayType::findTypeAndMethodNames()used only once (https://github.com/phpstan/phpstan-src/commit/30b9cd86c523b59739b609dc4e325d3275d71188)
v2.1.1
Improvements 🔧
- Introduce
getNextStatementsin UnreachableStatementNode (#3745), thanks @samsonasik! - Improve loose comparison on string types (#3756), thanks @staabm!
- Enforce safe constructor overrides with
@phpstan-consistent-constructor(#3687), #12137, thanks @herndlm! - Improve loose comparison on constant types (#3755), thanks @staabm!
- Improve loose comparison on IntegerRange containing zero (#3764), thanks @staabm!
- NodeScopeResolver: 10x faster constant array processing (#3769), thanks @staabm!
- UninitializedPropertyRule should be always reported when
checkUninitializedPropertiesis enabled (https://github.com/phpstan/phpstan-src/commit/ca86412b4c53af26c21ddb3dd01f3fe200f17b48)
Bugfixes 🐛
- This release includes fixes from PHPStan 1.12.15
- GetNonVirtualPropertyHookReadRule - do not report if get hook is not present at all (https://github.com/phpstan/phpstan-src/commit/b614f70e0154010f74e36dc9264962facac8122e)
- Support named arguments after unpacking on PHP 8.1+ (#3742), #11418, #8046, thanks @herndlm!
Internals 🔍
- Update PHP-Parser and BetterReflection (#3767)
- Simplify code thanks to PHP-Parser update
- Simplify code thanks to BetterReflection update
- PropertyHookReturnStatementsNode is invoked for short body hooks
- ShortGetPropertyHookReturnTypeRule is no longer needed
- PropertyHookNameVisitor is no longer needed, PHP-parser comes with
propertyNameattribute
v2.1.0
Read all about this release on PHPStan's blog!
Major new features 🚀
- Support for PHP 8.4's property hooks (RFC)
- Support for PHP 8.4's asymmetric visibility (RFC)
- Support for PHP 8.4's
#[Deprecated]attribute (RFC)
Bleeding edge 🔪
- UnusedFunctionParametersCheck: report precise line (#3743), thanks @janedbal!
If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:
includes:
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more
Improvements 🔧
- Readonly classes cannot be combined with
#[AllowDynamicProperties](#3738), #12281, thanks @staabm! - Check trait attributes (#3738), thanks @staabm!
- Named argument detection is scope-PHP version dependent (#3662), thanks @staabm!
- Improve loose comparison on integer (#3748), #12317, #12312, thanks @staabm!
- Improve loose comparison on union type (#3750), thanks @staabm!
- AccessStaticPropertiesRule - fixed blindspot about
parent::(https://github.com/phpstan/phpstan-src/commit/41837b490b12e3c71b4ca50003690f2900f74876)
Bugfixes 🐛
Internals 🔍
- Attributes rules use
In*Nodevirtual nodes for more precise Scope https://github.com/phpstan/phpstan-src/commit/90e48fa876696f221874a2766c2bf3fc1bea0ec0) - Remove duplicated PHPDoc from InternalScopeFactory classes (#3761), thanks @herndlm!
- Scope: use
Scope::getConstantinstead (#3666), thanks @staabm!
v2.0.4
This release includes improvements and fixes from PHPStan 1.12.13.
Improvements 🔧
- Added
strictRulesInstalledparameter (#3729), thanks @staabm!- Will be used for https://github.com/phpstan/phpstan-phpunit/pull/216
Bugfixes 🐛
- Skip param castable to X on non-arrays (#3694), #12146, thanks @schlndh!
- Remove incorrect CURLOPT_ACCEPT_ENCODING alias (#3703), #12171, thanks @xPaw!
- Fix
htmlspecialcharsandhtmlentitiesbeingnon-empty-stringwithout ENT_SUBSTITUTE flag (#3710), #12021, thanks @jack-worman!
Function signature fixes 🤖
- Fix
fgetcsvreturn type; never returns null (#3712), thanks @janedbal! - Fix
apcu_cache_infoandapcu_sma_infosignatures (#3726, https://github.com/phpstan/phpstan-src/commit/e7e80934023abc94a4f4bb9066ba6d6db26f6cde), thanks @vindic!
Internals 🔍
- Workaround for bug in slevomat/coding-standard TypeNameMatchesFileName (https://github.com/phpstan/phpstan-src/commit/7b4c9afd090d89d595eb113831bc4b79b45d22e2)
- Remove incorrect doc leftover from 1.x (#3732), thanks @AJenbo!
v2.0.3
This release includes improvements and fixes from PHPStan 1.12.12.
Bleeding edge 🔪
- Check that values passed to array_sum/product are castable to number (level 5) (#3658), #11883, thanks @schlndh!
If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:
includes:
- vendor/phpstan/phpstan/conf/bleedingEdge.neon
Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more
Improvements 🔧
- Update BetterReflection with https://github.com/Roave/BetterReflection/pull/1462, thanks @kukulich!
- Sanity checks around hooked properties in interfaces and classes (#3656), thanks @jakubtobiasz!
- Full support for PHP 8.4 is coming soon in PHPStan 2.1
Bugfixes 🐛
- Fix subtracting enums inside
in_array(#3646), #12083, thanks @janedbal! - Last value was not recognized when passing an associative array as an argument (#3668), #11815, thanks @sayuprc!
- Update PhpStorm stubs (#3683), #12132
Function signature fixes 🤖
- 3rd parameter of htmlentities and htmlspecialchars allows null (#3644), thanks @sreichel!
- Update curl_setopt string values and allow nullable (#3634), thanks @xPaw!* bccomp: more precise return type (#3647), thanks @claudepache!
Internals 🔍
- FunctionCallParametersCheck: Add native parameter type (#3641), thanks @staabm!
- Refactor TryRemove/Accepts for DateTime|DateTimeImmutable and Exception|Error (#3654), thanks @VincentLanglet!
- Implement
Scope::getPhpVersion()(#3642), thanks @staabm! - Non-capturing catch support detection is scope PHP-version dependent (#3663), #12114, thanks @staabm!
- Remove shortArraySyntax definition in
Printer::__construct()(#3680), thanks @samsonasik!
v2.0.2
Improvements 🔧
- More details about PHP version information in
diagnosecommand (#3609), thanks @staabm! - Utilize
phpVersion.minandmaxin VersionCompareFunctionDynamicReturnTypeExtension (#3631), thanks @staabm! - Improvements and fixes from PHPStan 1.12.11
Internals 🔍
v2.0.1
Bugfixes 🐛
- fix: check for existence of second arg in CountCharsFunctionDynamicReturnTypeExtension (#3620), thanks @canvural!
- Fix resolving tentative return type (https://github.com/phpstan/phpstan-src/commit/753fc4d98fe8929aa8816f454d2f9a836ccd7a6b)
- And fixes from PHPStan 1.12.10
v2.0.0
Check out the UPGRADING guide!.
Buy the PHPStan elephpant and T-shirts!
Major new features 🚀
-
Level 10 - level 9 on steroids, treats all
mixedtypes strictly, not just explicitmixed -
Array
listtype (#1751), #3311, #8185, #6243, thanks @rvanvelzen!- Lists are arrays with sequential integer keys starting at 0
-
Lower memory consumption thanks to breaking up of reference cycles
- Learn more »
- In testing the memory consumption was reduced by 50–70 %.
-
Enhancements in handling parameters passed by reference
- Learn more on phpstan.org
- #2941, thanks @ljmaskey!
- New rules (level 0):
- MagicConstantContextRule (#2741), #10099, thanks @staabm!
- MissingMagicSerializationMethodsRule (#1711), #7482, thanks @staabm!
- Check vprintf/vsprintf arguments against placeholder count (#3126), thanks @staabm!
- Check if required file exists (#3294), #3397, thanks @Bellangelo!
- Add
@readonlyrule that disallows default values (#1391), thanks @herndlm! - Rule about
@phpstan-consistent-constructor(#1296), thanks @canvural! - Check code in custom PHPStan extensions for runtime reflection concepts like
is_a()orclass_parents()(https://github.com/phpstan/phpstan-src/commit/c4a662ac6c3ec63f063238880b243b5399c34fcc) - Check code in custom PHPStan extensions for runtime reflection concepts like
new ReflectionMethod()(https://github.com/phpstan/phpstan-src/commit/536306611cbb5877b6565755cd07b87f9ccfdf08) - ApiInstanceofRule
- Report
instanceofof classes not covered by backward compatibility promise (https://github.com/phpstan/phpstan-src/commit/ff4d02d62a7a2e2c4d928d48d31d49246dba7139) - Report
instanceofof classes covered by backward compatibility promise but where the assumption might change (https://github.com/phpstan/phpstan-src/commit/996bc69fa977aa64f601bd82b8a0ae39be0cbeef)
- Report
- Check that PHPStan class in class constant fetch is covered by backward compatibility promise (https://github.com/phpstan/phpstan-src/commit/9e007251ce61788f6a0319a53f1de6cf801ed233)
- Previously absent type checks:
- Check existing classes in
@phpstan-self-out(https://github.com/phpstan/phpstan-src/commit/6838669976bf20232abde36ecdd52b1770fa50c9) - Check nonexistent classes in local type aliases (https://github.com/phpstan/phpstan-src/commit/2485b2e9c129e789ec3b2d7db81ca30f87c63911)
- Check unresolvable types in local type aliases (https://github.com/phpstan/phpstan-src/commit/5f7d12b2fb2809525ab0e96eeae95093204ea4d3)
- Check generics in local type aliases (https://github.com/phpstan/phpstan-src/commit/5a2d4416d94ab77a2a2e7e1bfaba4c5ed2a13c25)
- Check existing classes in
@param-out(https://github.com/phpstan/phpstan-src/commit/30c4b9e80f51af8b5f166ba3aae93d8409c9c0ea), #10260 - Check existing classes in
@param-closure-this(https://github.com/phpstan/phpstan-src/commit/2fa539a39e06bcc3155b109fd8d246703ceb176d), #10933
- Check existing classes in
- New rules (level 2):
-
Validate inline PHPDoc
@vartag type against native type (https://github.com/phpstan/phpstan-src/commit/a69e3bc2f1e87f6da1e65d7935f1cc36bd5c42fe)- Set
reportWrongPhpDocTypeInVarTagtotrueto have all types validated, not just native ones - Use config option
reportAnyTypeWideningInVarTag: truefor stricter behaviour (#2840), thanks @janedbal! - IncompatibleDefaultParameterTypeRule for closures (https://github.com/phpstan/phpstan-src/commit/0264f5bc48448c7e02a23b82eef4177d0617a82f)
- Set
- Checking truthiness of
@phpstan-pureabove functions and methods - Check variance of template types in properties (#2314), thanks @jiripudil!
- Report narrowing
PHPStan\Type\Typeinterface via@var(https://github.com/phpstan/phpstan-src/commit/713b98fb107213c28e3d8c8b4b43c5f5fc47c144), https://github.com/nunomaduro/larastan/issues/1567#issuecomment-1460445389 - Previously absent type checks:
- Check
@mixinPHPDoc tag above traits (https://github.com/phpstan/phpstan-src/commit/0d0de946900adf4eb3c799b1b547567536e23147) - Check
@extends,@implements,@usefor unresolvable types (https://github.com/phpstan/phpstan-src/commit/2bb528233edb75312614166e282776f279cf2018), #11552 - Check types in
@methodtags (https://github.com/phpstan/phpstan-src/commit/5b7e474680eaf33874b7ed6a227677adcbed9ca5) - Check generics
@method@templatetags above traits (https://github.com/phpstan/phpstan-src/commit/aadbf62d3ae4517fc7a212b07130bedcef8d13ac) - Check types in
@propertytags (https://github.com/phpstan/phpstan-src/commit/55ea2ae516df22a071ab873fdd6f748a3af0520e), #10752, #9356
- Check
-
Validate inline PHPDoc
- New rule (level 3):
- ArrayUnpackingRule (#856), thanks @canvural!
- New rules (level 4):
- Check too wide private property type (https://github.com/phpstan/phpstan-src/commit/7453f4f75fae3d635063589467842aae29d88b54)
- LogicalXorConstantConditionRule (https://github.com/phpstan/phpstan-src/commit/3a12724fd636b1bcf36c22b36e8f765d97150895, https://github.com/phpstan/phpstan-src/commit/3b011f6524254dad0f16840fdcfdbe7421548617), #7539
- Check that each trait is used and analysed at least once (https://github.com/phpstan/phpstan-src/commit/c4d05276fb8605d6ac20acbe1cc5df31cd6c10b0)
- Report useless return values of function calls like
var_exportwithout$return=true(#3225), #11320, thanks @staabm! - ConstantLooseComparisonRule (https://github.com/phpstan/phpstan-src/commit/6ebf2361a3c831dd105a815521889428c295dc9f)
- Check
new/function call/method call/static method call on a separate line without any side effects even without@phpstan-purePHPDoc tag on the declaration side - Always report always true conditions, except for last elseif and match arm (https://github.com/phpstan/phpstan-src/commit/565fb0f6da9cdc58e8686598015561a848693972)
- Remove "unreachable branches" rules: UnreachableIfBranchesRule, UnreachableTernaryElseBranchRule, unreachable arm error in MatchExpressionRule
- Because "always true" is always reported, these are no longer needed
- New rules (level 5):
- Check preg_quote delimiter sanity (#3252), #11338, thanks @staabm!
- Rule for
call_user_func()(#2479), thanks @staabm! - Report useless
array_filter()calls (#1077), #6840, thanks @leongersen! - Report useless
array_values()calls (#2917), thanks @kamil-zacek! - Check array functions which require stringish values (#3132), #11141, #5848, #3694, #11111, thanks @schlndh!
- Check unresolvable parameters (#1319), thanks @rvanvelzen!
- Enforce
@no-named-arguments(https://github.com/phpstan/phpstan-src/commit/74ba8c23696948f2647d880df72f375346f41010), #5968
- New rules (level 6):
- Previously absent type checks:
- Check missing types in
@phpstan-self-out(https://github.com/phpstan/phpstan-src/commit/892b319f25f04bc1b55c3d0063b607909612fe6d) - Check missing types in local type aliases (https://github.com/phpstan/phpstan-src/commit/ce7ffaf02d624a7fb9d38f8e5dffc9739f1233fc)
- Check missing types in
@mixin(https://github.com/phpstan/phpstan-src/commit/3175c81f26fd5bcb4a161b24e774921870ed2533)
- Check missing types in
- Previously absent type checks:
- New option:
polluteScopeWithBlock(defaults totrue,falseinphpstan-strict-rules) (https://github.com/phpstan/phpstan-src/commit/946cf180c960930c2c42075d0f28ff9090507272) - Support
@readonlyproperty and@immutableclass PHPDoc (#1295, #1335), #4082, thanks @herndlm! - Deprecate various
instanceof *Typein favour of new methods onTypeinterface, (https://github.com/phpstan/phpstan-src/commit/436e6d3015cbeba4645d38bc7a6a865b9c6d7c74), learn more: Why Is instanceof *Type Wrong and Getting Deprecated?
Improvements 🔧
- TableErrorFormatter - always output identifiers (https://github.com/phpstan/phpstan-src/commit/fc66c24113e9fe88c3155703224eb03768846fdd)
- Config option
exceptions.check.tooWideThrowTypemade true by default (https://github.com/phpstan/phpstan-src/commit/1b1da3e2ce3acf10dde03d9656638cda4f7389a4) - Use
implicitThrowsto only look for explicit throw points in too-wide@throwsrules when set tofalse(https://github.com/phpstan/phpstan-src/commit/a0e688c1d1e4c5e82f989b26485eb9162f47aa97) - Rules about tooWideThrowType moved to level 4 (https://github.com/phpstan/phpstan-src/commit/d7798d7f2c47f426efe91c566e6cafd5a4e2410c)
- Both .php and .neon baselines now include error identifiers (https://github.com/phpstan/phpstan-src/commit/f38addda2b151b6e41a746a37659c0bbe9e2293b, https://github.com/phpstan/phpstan-src/commit/c8b7ea9e8f51c8bbc38dfa6b04f9a0172f5cfea0)
- PHPDoc parser: Require whitespace before description with limited start tokens (https://github.com/phpstan/phpdoc-parser/pull/128), https://github.com/phpstan/phpdoc-parser/issues/125, thanks @rvanvelzen!
- Unescape strings in PHPDoc parser (https://github.com/phpstan/phpstan-src/commit/97786ed8376b478ec541ea9df1c450c1fbfe7461)
- PHPDoc parser: add config for lines in its AST & enable ignoring errors within PHPDocs (#2807), thanks @janedbal!
- InvalidPhpDocTagValueRule: include PHPDoc line number in the error message (https://github.com/phpstan/phpstan-src/commit/a04e0be832900749b5b4ba22e2de21db8bfa09a0)
- No implicit wildcard in FileExcluder (https://github.com/phpstan/phpstan-src/commit/e19e6e5f8cfa706cc30e44a17276a6bc269f995c), #10299
- Report invalid exclude paths in PHP config (https://github.com/phpstan/phpstan-src/commit/9718c14f1ffac81ba3d2bf331b4e8b4041a4d004)
- Do not generalize template types, except when in
GenericObjectType(#2818, #2821) - Non-static methods cannot be used as static callables in PHP 8+ (#2420), thanks @staabm!
- Analysis with zero files results in non-zero exit code (https://github.com/phpstan/phpstan-src/commit/46ff440648e62617df86aa74ba905ffa99897737), #9410
- Fail build when project config uses custom extensions outside of analysed paths
- This will only occur after a run that uses already present and valid result cache
- Returning plain strings as errors no longer supported, use RuleErrorBuilder
- Require identifier in custom rules (https://github.com/phpstan/phpstan-src/commit/969e6fa31d5484d42dab902703cfc6820a983cfd)
- New
RuleLevelHelper::accepts()behaviour (https://github.com/phpstan/phpstan-src/commit/941fc815db49315b8783dc466cf593e0d8a85d23), #11119, #4174 - Infer explicit mixed when instantiating generic class with unknown template types (https://github.com/phpstan/phpstan-src/commit/089d4c6fb6eb709c44123548d33990113d174b86), #6398
- Use explicit mixed for global array variables (#1411), #7082, thanks @herndlm!
- Consider implicit throw points when the only explicit one is
Throw_(https://github.com/phpstan/phpstan-src/commit/22eef6d5ab9a4afafb2305258fea273be6cc06e4), #4912 - Run missing type check on
@param-out(https://github.com/phpstan/phpstan-src/commit/56b20024386d983927c64dfa895ff026bed2798c) - Report "missing return" error closer to where the return is missing (https://github.com/phpstan/phpstan-src/commit/04f8636e6577cbcaefc944725eed74c0d7865ead)
- Report dead types even in multi-exception catch (#2399), thanks @JanTvrdik!
- MethodSignatureRule - look at abstract trait method (https://github.com/phpstan/phpstan-src/commit/5fd8cee591ce1b07daa5f98a1ddcdfc723f1b5eb)
- OverridingMethodRule - include template types in prototype declaring class description (https://github.com/phpstan/phpstan-src/commit/ca2c66cc4dff59ba44d52b82cb9e0aa3256240f3)
- Detect overriding
@finalmethod in OverridingMethodRule, #9135 - Improve error wording of the NonexistentOffset, BooleanAndConstantConditionRule, and BooleanOrConstantConditionRule (#1882), thanks @VincentLanglet!
- Stricter ++/-- operator check (#3255), thanks @schlndh!
- Check mixed in binary operator (#3231), #7538, #10440, thanks @schlndh!
- Check mixed in unary operator (#3253), thanks @schlndh!
- Stub files validation - detect duplicate classes and functions (https://github.com/phpstan/phpstan-src/commit/ddf8d5c3859c2c75c20f525a0e2ca8b99032373a, https://github.com/phpstan/phpstan-src/commit/17e4b74335e5235d7cd6708eb687a774a0eeead4)
- NoopRule - take advantage of impure points (https://github.com/phpstan/phpstan-src/commit/a6470521b65d7424f552633c1f3827704c6262c3), #10389
- Improve impossible type checker for void-returning functions (#1857), #8169, thanks @rvanvelzen!
- Check template type variance in
@param-out(https://github.com/phpstan/phpstan-src/commit/7ceb19d3b42cf4632d10c2babb0fc5a21b6c8352), https://github.com/phpstan/phpstan/issues/8880#issuecomment-1426971473 - Fix position variance of static method parameters (#2313), thanks @jiripudil!
- Empty
skipCheckGenericClasses(https://github.com/phpstan/phpstan-src/commit/28c2c79b16cac6ba6b01f1b4d211541dd49d8a77) - Report unnecessary nullsafe property fetch inside
??/isset/emptywith different message (#1253), thanks @rajyan! - Specify explicit mixed array type via
is_array(#1191), thanks @herndlm! - TooWideMethodReturnTypehintRule - always report for final methods (https://github.com/phpstan/phpstan-src/commit/c30e9a484c8245b8126cd63444607ca74d2af761)
- Move IllegalConstructorMethodCallRule and IllegalConstructorStaticCallRule to phpstan-strict-rules (https://github.com/phpstan/phpstan-src/commit/124b30f98c182193187be0b9c2e151e477429b7a, https://github.com/phpstan/phpstan-strict-rules/commit/0c82c96f2a55d8b91bbc7ee6512c94f68a206b43)
- Check invalid PHPDocs in previously unchecked statement types (https://github.com/phpstan/phpstan-src/commit/9780d352f3264aac09ac7954f691de1877db8e01)
- InvalidPHPStanDocTagRule in StubValidator (https://github.com/phpstan/phpstan-src/commit/9c2552b7e744926d1a74c1ba8fd32c64079eed61)
- CallToConstructorStatementWithoutSideEffectsRule - report class with no constructor (https://github.com/phpstan/phpstan-src/commit/b116d25a6e4ba6c09f59af6569d9e6f6fd20aff4)
- ContainerFactory - always check duplicate files (https://github.com/phpstan/phpstan-src/commit/939a715a0636ed05752659dbe7646c1f1a574765)
- Display parent class name for anonymous class like native PHP does (#3362), thanks @mvorisek!
- Always report static property fetch in
isset(), not just on PHP 8.2+ (#3476), thanks @ondrejmirtes! - Revert "Dumb down parameter types in some recently added stubs" (https://github.com/phpstan/phpstan-src/commit/950a491485c46068074ca3f4f6dc5b970d41465a)
- Do not apply heuristics of
Collection<...>|Foo[]being resolved to Collection of Foo (https://github.com/phpstan/phpstan-src/commit/fff8f095988a66f298aa4037fe8e6ba98266063c) - Collected PHP errors cannot be ignored (https://github.com/phpstan/phpstan-src/commit/1d3f4313955dc6fa5c6ce60fa58afe765964e5b0)
- Added missing rules to StubValidator (https://github.com/phpstan/phpstan-src/commit/bf19914cac1682d0eab8bf65a874ba368522311c)
- Report precise offsets in errors (#3504), thanks @ruudk!
- IntersectionType - always describe list as list (https://github.com/phpstan/phpstan-src/commit/f680629bc92e4dd5d7acd3bc60c9539fb047452b)
- ArrayType::describe - explicit mixed should be stated explicitly (https://github.com/phpstan/phpstan-src/commit/6cf223840f89c972551f373ade9eea16d12e143b)
- Refactor IntersectionType::describe() (https://github.com/phpstan/phpstan-src/commit/67fbfaee6585c2d47485dc2a159ee76d3ed02b35)
- Remove inefficient caching from
PhpMethodReflectionandPhpFunctionReflection::isVariadic()(#3534), thanks @staabm! - Clean file cache from unused items (https://github.com/phpstan/phpstan-src/commit/466ad51740d629c9137a77dac28a676b71ef7197)
- Journal for used generated containers (https://github.com/phpstan/phpstan-src/commit/57c65888e6372a4056afbbacc8207d411ea8559a)
- Use named argument in error for variadic types (#3611), thanks @ruudk!
Bugfixes 🐛
- Fix invariance composition (#2054), thanks @jiripudil!
- Fix checking generic
mixedtype based on config (#2885), thanks @schlndh!
Function signature fixes 🤖
- Countable stub with
0|positive-int(#1027), thanks @staabm! - More precise types for bcmath function parameters (#2217), thanks @Warxcell!
- Specify
Imagickparameter types (#2334), thanks @zonuexe! -
max()/min()should expect non-empty-array (#2163), thanks @staabm! - Narrow
Closure::bind$newScopeparam (#2817), thanks @mvorisek! -
error_logerrors withmessage_type=2(#2428), #9380, thanks @staabm! - Update functionMap (#2699, #2783), thanks @zonuexe!
- Improve image related functions signature (#3127), thanks @thg2k!
- Support
FILE_NO_DEFAULT_CONTEXTinfile()(#2482), thanks @staabm! - Fix ftp related function signatures (#2551), thanks @thg2k!
- More precise
file()flags args (#2476, #2482), thanks @staabm! - More precise
flock()operation flags (#2477), thanks @staabm! - More precise
stream_socket_client()signature (#2519), thanks @staabm! - More precise
scandir()signature (#2518), thanks @staabm! - More precise
extract()signature (#2517), thanks @staabm! - More precise
RecursiveIteratorIterator::__construct()parameter types (#2835), thanks @staabm! - Update
Localesignatures (#2880), thanks @devnix! - Improved the type of the
$modeparameter for thecount()(#3190), thanks @kuma3! - Check
filter_input*type param type (#2271), thanks @herndlm! - Change
curl_setoptfunction signature based on 2nd arg (#1719), thanks @staabm! - Support returning an array or a string in
count_chars()(#3596), thanks @u01jmg3! - xdebug_get_function_stack: fix signature (#3605), thanks @janedbal!
Internals 🔍
- Tool to make optional parameters required across the codebase (https://github.com/phpstan/phpstan-src/commit/7e366e08f96e2e4095b3f02b5487e8f9531f37bf)
- A few more MutatingScope method parameters made required (https://github.com/phpstan/phpstan-src/commit/2c4c0cde75e637ac323e81def57d4a2ace952429)
- CommandHelper::begin() parameters made required (https://github.com/phpstan/phpstan-src/commit/f17cf9ec43111cb29dd50d620fb6259c0ab0d373)
- MethodTag - constructor parameter
$templateTagsis required (https://github.com/phpstan/phpstan-src/commit/5b58f83e6d8b5044d742caed9729d00178c4a9de) - InitializerExprTypeResolver - constructor parameter
$usePathConstantsAsConstantStringmade required (https://github.com/phpstan/phpstan-src/commit/f88d9ba7f56ef6c3b783aee1c909a3422c0ef3c3) -
PhpMethodReflectionFactory::create()- all parameters are required (https://github.com/phpstan/phpstan-src/commit/8bfbf8f254a68e4f1b15419eb950ea677fc2916e) - FunctionCallParametersCheck - parameters
$nodeTypeand$acceptsNamedArgumentsmade required (https://github.com/phpstan/phpstan-src/commit/493752737c32eb878de4dfb91817761b952348e4) - MethodParameterComparisonHelper - parameter
$ignorableofcompare()method made required (https://github.com/phpstan/phpstan-src/commit/f85a500288b0b8ef9a19d405c0e3d99ab57ce797) - Parameter
$dateTimeClassof DateTimeModifyReturnTypeExtension constructor made required (https://github.com/phpstan/phpstan-src/commit/a8cd423e842deaa7d924580665207a4b1a373115) - NativeFunctionReflection construct parameters made required (https://github.com/phpstan/phpstan-src/commit/64ff598cd42268d2178d02efd208afe637060978)
- Cover AccessoryArrayListType constructor with BC promise (https://github.com/phpstan/phpstan-src/commit/51de9032c6e98bff2d6eb0e5b7295720ec0276b9)
- Add
PhpVersionparameter to variousTypemethods (#3478), thanks @VincentLanglet! - Move ContainerDynamicReturnTypeExtension to build/PHPStan (https://github.com/phpstan/phpstan-src/commit/5651bec661582b2d62de1b4ae9d5f27e69e3c524)
- Renamed NewOptimizedDirectorySourceLocator to OptimizedDirectorySourceLocator (https://github.com/phpstan/phpstan-src/commit/db02a30ca11c7b9839c30e0321ed403dd14f6c73)
- Remove unneded abstraction (https://github.com/phpstan/phpstan-src/commit/f302c9069274afa63ec1b4f313ca72340699e9d8)
- Introduce native return types thanks to PHP 7.4 return type covariance (https://github.com/phpstan/phpstan-src/commit/392f090066bfc9946b4ad524ffecf3d420c23114)
- ReadWritePropertiesExtension - use ExtendedPropertyReflection in parameter type (https://github.com/phpstan/phpstan-src/commit/f0a629685de2202687b9f92bd0e1a516daf2443e)
- Declare more precise
getClass()return types in extension interfaces (#1754), thanks @staabm! - (https://github.com/phpstan/phpstan-src/commit/38cb5a315e5573231d8695df343c8ee87a8c3b2e)
- HasOffsetType - put constructor parameter type natively (https://github.com/phpstan/phpstan-src/commit/b5accb3f6bbcffc8a44934539b88903e09b6a174)
- Printer is covered by BC promise (https://github.com/phpstan/phpstan-src/commit/b0858332efc7aa2f2fde7544a2a821ba81bde13b)
- More interfaces that are not supposed to be implemented in userland (https://github.com/phpstan/phpstan-src/commit/778af2ed74ba59bfb2a69fd5b45821ccdb1107c9, https://github.com/phpstan/phpstan-src/commit/cb6ab5544a016c52f931fc390bcdf9c627819d8f)
- Refactored
FunctionCallParametersCheck::check()parameters (https://github.com/phpstan/phpstan-src/commit/710e09c41698efb1d8d3ae31791944077dbb9cc1) - Spread list usages in Reflection, Scope, Type (#3530), thanks @janedbal!
- Remove $isFinal dead-code in PhpFunctionReflection (#3545), thanks @staabm!
- Get rid of unnecessary
instanceof selfinConstantArrayType(#3552), thanks @herndlm! - test: use
bashunit -aexit_code to check for errors (#3533), thanks @Chemaclass! - Upgrade bashunit:0.18.0 for e2e tests (#3614), thanks @Chemaclass!
- Remove dead code (#3575), thanks @staabm!
- Remove dead code in ConstantConditionRuleHelper (#3597), thanks @staabm!
phpstan/phpstan-symfony (phpstan/phpstan-symfony)
v2.0.7
- 392f7ab - fix: Improve ParameterBag stub
- 9c272bd - Add PropertyAccessor stub file alongside PropertyAccessorInterface
v2.0.6
-
5005288 - Do not narrow
KernelTestCase::getContainer()return type to internal TestContainer
v2.0.5
- 582ddbc - Export-ignore github and editor config; remove leftover excludes
- cf8c9c6 - chore(deps): update dependency psr/container to v1.1.2
- 1430c2d - Fix build
- dfb2387 - chore(deps): update metcalfc/changelog-generator action to v4.6.2
v2.0.4
- 648087f - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- deec7cc - chore(deps): update metcalfc/changelog-generator action to v4.5.0
- 8f0edc7 - Merge branch '1.4.x' into 2.0.x
- d589514 - Update LICENSE
- 65f02c7 - Add result cache meta extension for DI container
- 7417f3a - Configuration class no longer needed, pass arguments directly to services
- c08cd8e - Fix CS after merge
- fa54bd1 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 1ef4dce - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 55ff7b7 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 282a698 - Fix after PHPStan update
-
bb3e671 - Cleanup
skipCheckGenericClasses - 237165e - Fixes after PHPStan update
- d1e08ac - Fixes after PHPStan update
- a0572ad - Fixes after PHPStan update
-
7e5633f - [BCB] Remove legacy config options with
_in their name - 4f260f0 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 3eb61a0 - Fixes after PHPStan update
- bd9efb7 - Fixes after PHPStan update
- 23a776d - Fixes after TypeSpecifier BC break
- c88f96e - Drop dependency on nikic/php-parser
- 90e8976 - Update build-cs
- 2f736a6 - Stop testing PHP 7.2 and 7.3
- 2c53b38 - Open 2.0.x
v2.0.3
- 8f0edc7 - Merge branch '1.4.x' into 2.0.x
- d589514 - Update LICENSE
- 65f02c7 - Add result cache meta extension for DI container
- 7417f3a - Configuration class no longer needed, pass arguments directly to services
- c08cd8e - Fix CS after merge
- fa54bd1 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 1ef4dce - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 55ff7b7 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 282a698 - Fix after PHPStan update
-
bb3e671 - Cleanup
skipCheckGenericClasses - 237165e - Fixes after PHPStan update
- d1e08ac - Fixes after PHPStan update
- a0572ad - Fixes after PHPStan update
-
7e5633f - [BCB] Remove legacy config options with
_in their name - 4f260f0 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 3eb61a0 - Fixes after PHPStan update
- bd9efb7 - Fixes after PHPStan update
- 23a776d - Fixes after TypeSpecifier BC break
- c88f96e - Drop dependency on nikic/php-parser
- 90e8976 - Update build-cs
- 2f736a6 - Stop testing PHP 7.2 and 7.3
- 2c53b38 - Open 2.0.x
v2.0.2
- 65f02c7 - Add result cache meta extension for DI container
- 7417f3a - Configuration class no longer needed, pass arguments directly to services
v2.0.1
- c08cd8e - Fix CS after merge
- fa54bd1 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 1ef4dce - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 55ff7b7 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 282a698 - Fix after PHPStan update
-
bb3e671 - Cleanup
skipCheckGenericClasses - 237165e - Fixes after PHPStan update
- d1e08ac - Fixes after PHPStan update
- a0572ad - Fixes after PHPStan update
-
7e5633f - [BCB] Remove legacy config options with
_in their name - 4f260f0 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 3eb61a0 - Fixes after PHPStan update
- bd9efb7 - Fixes after PHPStan update
- 23a776d - Fixes after TypeSpecifier BC break
- c88f96e - Drop dependency on nikic/php-parser
- 90e8976 - Update build-cs
- 2f736a6 - Stop testing PHP 7.2 and 7.3
- 2c53b38 - Open 2.0.x
v2.0.0
- 1ef4dce - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 55ff7b7 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 282a698 - Fix after PHPStan update
-
bb3e671 - Cleanup
skipCheckGenericClasses - 237165e - Fixes after PHPStan update
- d1e08ac - Fixes after PHPStan update
- a0572ad - Fixes after PHPStan update
-
7e5633f - [BCB] Remove legacy config options with
_in their name - 4f260f0 - Merge remote-tracking branch 'origin/1.4.x' into 2.0.x
- 3eb61a0 - Fixes after PHPStan update
- bd9efb7 - Fixes after PHPStan update
- 23a776d - Fixes after TypeSpecifier BC break
- c88f96e - Drop dependency on nikic/php-parser
- 90e8976 - Update build-cs
- 2f736a6 - Stop testing PHP 7.2 and 7.3
- 2c53b38 - Open 2.0.x
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.