The Phan 3.x release line uses php-ast
's AST version 70 and supports the analysis of all PHP 8.0 syntax except attributes (when run with PHP 8).
The planned 4.x release line will use AST version 80 and require php-ast
1.0.10+ in order to parse/analyze PHP 8.0's #[]
attributes
New features (Analysis):
- Update real parameter names to match php 8.0's parameter names for php's own internal methods (including variadics and those with multiple signatures). (#4263)
Update real parameter names, types, and return types for some PECL extensions. - Raise the severity of some php 8.0 incompatibility issues to critical.
- Fix handling of references after renaming variadic reference parameters of
fscanf
/scanf
/mb_convert_variables
- Mention if PhanUndeclaredFunction is potentially caused by the target php version being too old. (#4230)
- Improve real type inference for conditionals on literal types (#4288)
- Change the way the real type set of array access is inferred for mixes of array shapes and arrays (#4296)
- Emit
PhanSuspiciousNamedArgumentVariadicInternal
when using named arguments with variadic parameters of internal functions that are
not among the few reflection functions known to support named arguments. (#4284) - Don't suggest instance properties as alternatives to undefined variables inside of static methods.