See UPGRADE-5.0 for detailed migration instructions. The changelog is relative to beta 1.
Fixed
- Fixed parsing of empty files.
Added
- Added support for printing additional attributes (like
kind
) inNodeDumper
. - Added
rawValue
attribute toInterpolatedStringPart
and heredoc/nowdocString_
s, which provides the original, unparsed value. It was previously only available for non-interpolated single/double quoted strings. - Added
Stmt\Block
to represent{}
code blocks. Previously, such code blocks were flattened into the parent statements array.Stmt\Block
will not be created for structures that are typically used with code blocks, for exampleif ($x) { $y; }
will be represented as previously, whileif ($x) { { $y; } }
will have an extraStmt\Block
wrapper.
Changed
- Use visitor to assign comments. This fixes the long-standing issue where comments were assigned to all nodes sharing a starting position. Now only the outer-most node will hold the comments.
- Don't parse unicode escape sequences when targeting PHP < 7.0.
- Improve NodeDumper performance for large dumps.
Removed
- Removed
Stmt\Throw_
node, useExpr\Throw_
insideStmt\Expression
instead. - Removed
ParserFactory::create()
.