[PHP 8.0] Added support for attributes. These are represented using a new AttributeGroup node containing Attribute nodes. A new attrGroups subnode is available on all node types that support attributes, i.e. Stmt\Class_, Stmt\Trait_, Stmt\Interface_, Stmt\Function_, Stmt\ClassMethod, Stmt\ClassConst, Stmt\Property, Expr\Closure, Expr\ArrowFunction and Param.
[PHP 8.0] Added support for nullsafe properties inside interpolated strings, in line with an upstream change.
Fixed
Improved compatibility with other libraries that use forward compatibility defines for PHP tokens.
PHP-Parser 4.9.1
Added
Added support for removing the first element of a list to the formatting-preserving pretty printer.
Fixed
Allow member modifiers as part of namespaced names. These were missed when support for other keywords was added.
PHP-Parser 4.9.0
Added
[PHP 8.0] Added support for named arguments, represented using a new name subnode on Arg.
[PHP 8.0] Added support for static return type, represented like a normal class return type.
[PHP 8.0] Added support for throw expression, represented using a new Expr\Throw_ node. For backwards compatibility reasons, throw expressions in statement context continue to be represented using Stmt\Throw_.
[PHP 8.0] Added support for keywords as parts of namespaced names.
Fixed
Emit parentheses for class constant fetch with complex left-hand-side.
Emit parentheses for new/instanceof on complex class expression.
PHP-Parser 4.8.0
Added
[PHP 8.0] Added support for nullsafe operator, represented using the new Expr\NullsafePropertyFetch and Expr\NullsafeMethodCall nodes.
Added phpVersion option to the emulative lexer, which allows controlling the target version to emulate (defaults to the latest available, currently PHP 8.0). This is useful to parse code that uses reserved keywords from newer PHP versions as identifiers.
PHP-Parser 4.7.0
Added
Add ParentConnectingVisitor and NodeConnectingVisitor classes.
[PHP 8.0] Added support for match expressions. These are represented using a new Expr\Match_ containing MatchArms.
[PHP 8.0] Added support for trailing comma in closure use lists.
Fixed
Fixed missing error for unterminated comment with trailing newline (#688).
Compatibility with PHP 8.0 has been restored: Namespaced names are now always represented by T_NAME_* tokens, using emulationg on older PHP versions. Full support for reserved keywords in namespaced names is not yet present.
[PHP 8.0] Added support for attributes. These are represented using a new AttributeGroup node
containing Attribute nodes. A new attrGroups subnode is available on all node types that
support attributes, i.e. Stmt\Class_, Stmt\Trait_, Stmt\Interface_, Stmt\Function_,
Stmt\ClassMethod, Stmt\ClassConst, Stmt\Property, Expr\Closure, Expr\ArrowFunction and
Param.
[PHP 8.0] Added support for nullsafe properties inside interpolated strings, in line with an
upstream change.
Fixed
Improved compatibility with other libraries that use forward compatibility defines for PHP tokens.
Version 4.9.1 (2020-08-30)
Added
Added support for removing the first element of a list to the formatting-preserving pretty
printer.
Fixed
Allow member modifiers as part of namespaced names. These were missed when support for other
keywords was added.
Version 4.9.0 (2020-08-18)
Added
[PHP 8.0] Added support for named arguments, represented using a new name subnode on Arg.
[PHP 8.0] Added support for static return type, represented like a normal class return type.
[PHP 8.0] Added support for throw expression, represented using a new Expr\Throw_ node. For
backwards compatibility reasons, throw expressions in statement context continue to be
represented using Stmt\Throw_.
[PHP 8.0] Added support for keywords as parts of namespaced names.
Fixed
Emit parentheses for class constant fetch with complex left-hand-side.
Emit parentheses for new/instanceof on complex class expression.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps nikic/php-parser from 4.5.0 to 4.10.0.
Release notes
Sourced from nikic/php-parser's releases.
Changelog
Sourced from nikic/php-parser's changelog.
Commits
1c13d05
Release PHP-Parser 4.10.0c7dc3ce
Add basic FPPP support for attributes9f6ad68
Adjust skip list for moved test1899471
Update test for PHP 8 error behavior8505acd
Correctly handle ?-> in encapsed stringsc3e20d9
Use 8.0.0beta4 to tests against4c22c62
[PHP 8.0] Add attributes support (#661)f66a32e
Emulate PHP 8 attribute syntax75abbbd
Handle flexible heredoc via TokenEmulator39b0460
Refactor token emulator registrationDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)