Skip to content

Update dependency nikic/php-parser to v5 #12

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 7, 2024

This PR contains the following updates:

Package Change Age Confidence
nikic/php-parser ^4.3.0 -> ^5.0.0 age confidence

Release Notes

nikic/PHP-Parser (nikic/php-parser)

v5.6.1

Compare Source

Fixed
  • Fixed Param::isPublic() for parameters with asymmetric visibility keyword.
  • Fixed PHP 8.5 deprecation warnings for SplObjectStorage methods.
Added
  • Added cast kind attributes to Cast\Int_, Cast\Bool_ and Cast\String_.
    These allow distinguishing the deprecated versions of these casts.

v5.6.0

Compare Source

Added
  • [8.5] Added support for clone with arbitrary function arguments. This will be parsed as an
    Expr\FuncCall node, instead of the usual Expr\Clone_ node.
  • [8.5] Permit declaration of function clone for use in stubs.
  • [8.5] Added support for the pipe operator, represented by Expr\BinaryOp\Pipe.
  • [8.5] Added support for the (void) cast, represented by Expr\Cast\Void_.
  • [8.5] Added support for the final modifier on promoted properties.
  • Added CallLike::getArg() to fetch an argument by position and name.

v5.5.0

Compare Source

Added
  • [8.5] Added support for attributes on constants. Stmt\Const_ now has an attrGroups subnode.
  • Added weakReferences option to NodeConnectingVisitor and ParentConnectingVisitor. This
    will create the parent/next/prev references as WeakReferences, to avoid making the AST cyclic
    and thus increasing GC pressure.
Changed
  • Attributes on parameters are now printed on separate lines if the pretty printer target version
    is PHP 7.4 or older (which is the default). This allows them to be interpreted as comments,
    instead of causing a parse error. Specify a target version of PHP 8.0 or newer to restore the
    previous behavior.

v5.4.0

Compare Source

Added
  • Added Property::isAbstract() and Property::isFinal() methods.
  • Added PropertyHook::isFinal() method.
  • Emit an error if property hook is used on declaration with multiple properties.
Fixed
  • Make legacy class aliases compatible with classmap-authoritative autoloader.
  • Param::isPromoted() and Param::isPublic() now returns true for parameters that have property
    hooks but no explicit visibility modifier.
  • PropertyHook::getStmts() now correctly desugars short set hooks. set => $value will be
    expanded to set { $this->propertyName = $value; }. This requires the propertyName attribute
    on the hook to be set, which is now also set by the parser. If the attribute is not set,
    getStmts() will throw an error for short set hooks, as it is not possible to produce a correct
    desugaring.

v5.3.1

Compare Source

Added
  • Added support for declaring functions with name exit or die, to allow their use in stubs.

v5.3.0

Compare Source

Added
  • Added indent option to pretty printer, which can be used to specify the indentation to use
    (defaulting to four spaces). This also allows using tab indentation.
Fixed
  • Resolve names in PropertyHooks in the NameResolver.
  • Include the trailing semicolon inside Stmt\GroupUse nodes, making them consistent with
    Stmt\Use_ nodes.
  • Fixed indentation sometimes becoming negative in formatting-preserving pretty printer, resulting
    in ValueErrors.

v5.2.0

Compare Source

Added
  • [8.4] Added support for __PROPERTY__ magic constant, represented using a
    Node\Scalar\MagicConst\Property node.
  • [8.4] Added support for property hooks, which are represented using a new hooks subnode on
    Node\Stmt\Property and Node\Param, which contains an array of Node\PropertyHook.
  • [8.4] Added support for asymmetric visibility modifiers. Property flags can now hold the
    additional bits Modifiers::PUBLIC_SET, Modifiers::PROTECTED_SET and Modifiers::PRIVATE_SET.
  • [8.4] Added support for generalized exit function. For backwards compatibility, exit without
    argument or a single plain argument continues to use a Node\Expr\Exit_ node. Otherwise (e.g.
    if a named argument is used) it will be represented as a plain Node\Expr\FuncCall.
  • Added support for passing enum values to various builder methods, like BuilderFactory::val().
Removed
  • Removed support for alternative array syntax $array{0} from the PHP 8 parser. It is still
    supported by the PHP 7 parser. This is necessary in order to support property hooks.

v5.1.0

Compare Source

Added
  • [8.4] Added support for dereferencing new expressions without parentheses.
Fixed
  • Fixed redundant parentheses being added when pretty printing ternary expressions.
Changed
  • Made some phpdoc types more precise.

v5.0.2

Compare Source

Fixed
  • Fix handling of indentation on next line after opening PHP tag in formatting-preserving pretty
    printer.
Changed
  • Avoid cyclic references in Parser objects. This means that no longer used parser objects are
    immediately destroyed now, instead of requiring cycle GC.
  • Update PhpVersion::getNewestSupported() to report PHP 8.3 instead of PHP 8.2.

v5.0.1

Compare Source

Changed
  • Added check to detect use of PHP-Parser with libraries that define T_* compatibility tokens
    with incorrect type (such as string instead of int). This would lead to TypeErrors down the
    line. Now an Error will be thrown early to indicate the problem.

v5.0.0

Compare Source

See UPGRADE-5.0 for detailed migration instructions.

Fixed
  • Fixed parent class of PropertyItem and UseItem.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from drupol as a code owner January 7, 2024 19:33
Copy link

what-the-diff bot commented Jan 7, 2024

PR Summary

  • Update of a third-party package
    The version of the nikic/php-parser package that our application depends on has been updated to use the latest version (^5.0.0). This should bring in improvements and bug fixes from the updated version.

@renovate renovate bot force-pushed the renovate/nikic-php-parser-5.x branch from 6cba0f9 to fbde135 Compare July 27, 2025 21:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants