All Versions
64
Latest Version
Avg Release Cycle
43 days
Latest Release
800 days ago

Changelog History
Page 2

  • v4.11.0 Changes

    July 03, 2021

    โž• Added

    • ๐Ÿ— BuilderFactory::args() now accepts named arguments.
    • ๐Ÿ— BuilderFactory::attribute() has been added.
    • An addAttribute() method accepting an Attribute or AttributeGroup has been adde to all builders that accept attributes, such as Builder\Class_.

    ๐Ÿ›  Fixed

    • NameResolver now handles enums.
    • ๐Ÿ–จ PrettyPrinter now prints backing enum type.
    • ๐Ÿ— Builder methods for types now property handle never type.
  • v4.10.5 Changes

    May 03, 2021

    โž• Added

    • ๐Ÿ‘ [PHP 8.1] Added support for enums. These are represented using the Stmt\Enum_ and Stmt\EnumCase nodes.
    • ๐Ÿ‘ [PHP 8.1] Added support for never type. This type will now be returned as an Identifier rather than Name.
    • โž• Added ClassConst builder.

    ๐Ÿ”„ Changed

    • Non-UTF-8 code units in strings will now be hex-encoded.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed precedence of arrow functions.
  • v4.10.4 Changes

    December 20, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed position information for variable-variables (#741).
    • ๐Ÿ›  Fixed position information for traits/interfaces preceded by if statement (#738).
  • v4.10.3 Changes

    December 03, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed formatting-preserving pretty printing for "{$x}".
    • ๐Ÿ–จ Ternary expressions are now treated as non-associative in the pretty printer, in order to generate code that is compatible with the parentheses requirement introduced in PHP 8.
    • Removed no longer necessary error_clear_last() call in lexer, which may interfere with fatal error handlers if invoked during shutdown.
  • v4.10.2 Changes

    September 26, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed check for token emulation conflicts with other libraries.
  • v4.10.1 Changes

    September 23, 2020

    โž• Added

    • โž• Added support for recovering from a missing semicolon after a property or class constant declaration.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix spurious whitespace in formatting-preserving pretty printer when both removing and adding elements at the start of a list.
    • ๐Ÿ›  Fix incorrect case-sensitivity in keyword token emulation.
  • 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.