1
0
mirror of https://github.com/danog/PHP-Parser.git synced 2024-11-27 04:14:44 +01:00
PHP-Parser/CHANGELOG.md
nikic dab2fd4b7a Fix comment reformatting on Linux
Remove the use of \R (with BSR_ANYCRLF) at two places, as it was causing
problems there.
2012-05-11 18:45:55 +02:00

2.6 KiB

Version 0.9.2-dev

  • [BC] Due to the below changes nodes now optionally accept an $attributes array as the last parameter, instead of the previously used $line and $docComment parameters.

  • Add mechanism for adding attributes to nodes in the lexer.

    The following attributes are now added by default:

    • startLine: The line the node started in.
    • endLine: The line the node ended in.
    • comments: An array of comments. The comments are instances of PHPParser_Comment (or PHPParser_Comment_Doc for doc comments).

    The methods getLine() and setLine() still exist and function as before, but internally operator on the startLine attribute.

    getDocComment() also continues to exist. It returns the last comment in the comments attribute if it is a doc comment, otherwise null. As getDocComment() now returns a comment object (which can be modified using ->setText()) the setDocComment() method was removed. Comment objects implement a __toString() method, so getDocComment() should continue to work properly with old code.

  • [BC] Use inject-once approach for lexer:

    Now the lexer is injected only once when creating the parser. Instead of

    $parser = new PHPParser_Parser;
    $parser->parse(new PHPParser_Lexer($code));
    $parser->parse(new PHPParser_Lexer($code2));
    

    you write:

    $parser = new PHPParser_Parser(new PHPParser_Lexer);
    $parser->parse($code);
    $parser->parse($code2);
    
  • Fix NameResolver visitor to also resolve class names in catch blocks.

Version 0.9.1 (24.04.2012)

  • Add ability to add attributes to nodes:

    It is now possible to add attributes to a node using $node->setAttribute('name', 'value') and to retrieve them using $node->getAttribute('name' [, 'default']). Additionally the existance of an attribute can be checked with $node->hasAttribute('name') and all attributes can be returned using $node->getAttributes().

  • Add code generation features: Builders and templates.

    For more infos, see the code generation documentation.

  • [BC] Don't traverse nodes merged by another visitor:

    If a NodeVisitor returns an array of nodes to merge, these will no longer be traversed by all other visitors. This behavior only caused problems.

  • Fix line numbers for some list structures.

  • Fix XML unserialization of empty nodes.

  • Fix parsing of integers that overflow into floats.

  • Fix emulation of NOWDOC and binary floats.

Version 0.9.0 (05.01.2012)

First version.