All Versions
58
Latest Version
Avg Release Cycle
44 days
Latest Release
54 days ago

Changelog History
Page 2

  • v4.10.0 Changes

    September 19, 2020

    โž• Added

    • ๐Ÿ‘ [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.
  • v4.9.1 Changes

    August 30, 2020

    โž• 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.
  • v4.9.0 Changes

    August 18, 2020

    โž• 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.
  • v4.8.0 Changes

    August 09, 2020

    โž• 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.
  • v4.7.0 Changes

    July 25, 2020

    โž• 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.
  • v4.6.0 Changes

    July 02, 2020

    โž• Added

    • ๐Ÿ‘ [PHP 8.0] Added support for trailing commas in parameter lists.
    • ๐Ÿ‘ [PHP 8.0] Added support for constructor promotion. The parameter visibility is stored in Node\Param::$flags.

    ๐Ÿ›  Fixed

    • Comment tokens now always follow the PHP 8 interpretation, and do not include trailing whitespace.
    • As a result of the previous change, some whitespace issues when inserting a statement into a method containing only a comment, and using the formatting-preserving pretty printer, have been resolved.
  • v4.5.0 Changes

    June 03, 2020

    โž• Added

    • ๐Ÿ“œ [PHP 8.0] Added support for the mixed type. This means mixed types are now parsed as an Identifier rather than a Name.
    • ๐Ÿ‘ป [PHP 8.0] Added support for catching without capturing the exception. This means that Catch_::$var may now be null.
  • v4.4.0 Changes

    April 10, 2020

    โž• Added

    • โž• Added support for passing union types in builders.
    • โž• Added end line, token position and file position information for comments.
    • โž• Added getProperty() method to ClassLike nodes.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed generation of invalid code when using the formatting preserving pretty printer, and inserting code next to certain nop statements. The formatting is still ugly though.
    • getDocComment() no longer requires that the very last comment before a node be a doc comment. There may not be non-doc comments between the doc comment and the declaration.
    • ๐Ÿ‘ Allowed arbitrary expressions in isset() and list(), rather than just variables. In particular, this allows isset(($x)), which is legal PHP code.
    • [PHP 8.0] Add support for variable syntax tweaks RFC.
  • v4.3.0 Changes

    November 08, 2019

    โž• Added

    • ๐Ÿ‘ [PHP 8.0] Added support for union types using a new UnionType node.
  • v4.2.5 Changes

    October 25, 2019

    ๐Ÿ”„ Changed

    • ๐Ÿ“š Tests and documentation are no longer included in source archives. They can still be accessed by cloning the repository.
    • ๐Ÿ“œ php-yacc is now used to generate the parser. This has no impact on users of the library.