See UPGRADE-5.0 for detailed migration instructions.
Added
- [PHP 8.3] Added support for typed constants.
- [PHP 8.3] Added support for readonly anonymous classes.
- Added support for
NodeVisitor::REPLACE_WITH_NULL. - Added support for CRLF newlines in the pretty printer, using the new
newlineoption.
Changed
- Use PHP 7.1 as the default target version for the pretty printer.
- Print
else if { }instead ofelse { if { } }. - The
leaveNode()method on visitors is now invoked in reverse order ofenterNode(). - Moved
NodeTraverser::REMOVE_NODEetc. toNodeVisitor::REMOVE_NODE. The old constants are still available for compatibility. - The
Namesubnodepartshas been replaced byname, which stores the name as a string rather than an array of parts separated by namespace separators. ThegetParts()method returns the old representation. - No longer accept strings for types in Node constructors. Instead, either an
Identifier,NameorComplexTypemust be passed. Comment::getReformattedText()now normalizes CRLF newlines to LF newlines.
Fixed
- Don't trim leading whitespace in formatting preserving printer.
- Treat DEL as a label character in the formatting preserving printer depending on the targeted PHP version.
- Fix error reporting in emulative lexer without explicitly specified error handler.
- Gracefully handle non-contiguous array indices in the
Differ.