2012-07-07 22:23:25 +02:00
|
|
|
Version 0.9.3-dev
|
2012-04-23 14:14:52 +02:00
|
|
|
-----------------
|
|
|
|
|
2012-09-07 23:21:23 +02:00
|
|
|
* [BC] As `list()` in `foreach` is not supported the structure of list assignments changed:
|
|
|
|
|
|
|
|
1. There is no longer a dedicated `AssignList` node; instead a normal `Assign` node is used with a `List` as `var`.
|
|
|
|
2. Nested lists are now `List` nodes too, instead of just arrays.
|
|
|
|
|
2012-09-07 19:43:07 +02:00
|
|
|
* [PHP 5.5] Add support for constant array / string dereferencing.
|
|
|
|
Examples: `"foo"[2]`, `[1, 2, 3][2]`
|
|
|
|
|
2012-09-07 19:24:44 +02:00
|
|
|
* [PHP 5.5] Add support for `yield` expressions. This adds a new `Yield` expression type, with subnodes `key` and
|
|
|
|
`value`.
|
|
|
|
|
2012-09-07 18:06:11 +02:00
|
|
|
* [PHP 5.5] Add support for `finally`. This adds a new `finallyStmts` subnode to the `TryCatch` node. If there is no
|
|
|
|
finally clause it will be `null`.
|
|
|
|
|
2012-09-07 23:21:23 +02:00
|
|
|
* [PHP 5.5] Add support for `list()` destructuring of `foreach` values.
|
2012-09-07 17:22:43 +02:00
|
|
|
Example: `foreach ($coords as list($x, $y)) { ... }`
|
|
|
|
|
2012-07-23 11:36:47 +02:00
|
|
|
* Fix parsing of `$foo =& new Bar`. It is now properly parsed as `AssignRef` (instead of `Assign`).
|
2012-07-07 22:23:25 +02:00
|
|
|
|
|
|
|
Version 0.9.2 (07.07.2012)
|
|
|
|
--------------------------
|
2012-09-07 23:21:23 +02:00
|
|
|
|
2012-07-07 16:24:07 +02:00
|
|
|
* Add `Class->getMethods()` function, which returns all methods contained in the `stmts` array of the class node. This
|
|
|
|
does not take inherited methods into account.
|
|
|
|
|
2012-07-07 16:08:37 +02:00
|
|
|
* Add `isPublic()`, `isProtected()`, `isPrivate()`. `isAbstract()`, `isFinal()` and `isStatic()` accessors to the
|
|
|
|
`ClassMethod`, `Property` and `Class` nodes. (`Property` and `Class` obviously only have the accessors relevant to
|
|
|
|
them.)
|
|
|
|
|
2012-05-12 14:15:24 +02:00
|
|
|
* Fix parsing of new expressions in parentheses, e.g. `return(new Foo);`.
|
|
|
|
|
2012-05-11 18:45:55 +02:00
|
|
|
* [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.
|
|
|
|
|
2012-05-11 17:58:59 +02:00
|
|
|
* 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
|
|
|
|
|
2012-05-12 14:15:24 +02:00
|
|
|
$parser = new PHPParser_Parser;
|
|
|
|
$parser->parse(new PHPParser_Lexer($code));
|
|
|
|
$parser->parse(new PHPParser_Lexer($code2));
|
2012-05-11 17:58:59 +02:00
|
|
|
|
|
|
|
you write:
|
|
|
|
|
2012-05-12 14:15:24 +02:00
|
|
|
$parser = new PHPParser_Parser(new PHPParser_Lexer);
|
|
|
|
$parser->parse($code);
|
|
|
|
$parser->parse($code2);
|
2012-05-11 17:58:59 +02:00
|
|
|
|
|
|
|
* Fix `NameResolver` visitor to also resolve class names in `catch` blocks.
|
2012-04-24 00:52:11 +02:00
|
|
|
|
|
|
|
Version 0.9.1 (24.04.2012)
|
|
|
|
--------------------------
|
|
|
|
|
2012-04-23 14:14:52 +02:00
|
|
|
* 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][1].
|
|
|
|
|
|
|
|
* [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.
|
|
|
|
|
2012-05-11 17:58:59 +02:00
|
|
|
* 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.
|
2012-04-23 14:14:52 +02:00
|
|
|
|
|
|
|
Version 0.9.0 (05.01.2012)
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
First version.
|
|
|
|
|
|
|
|
[1]: https://github.com/nikic/PHP-Parser/blob/master/doc/3_Code_generation.markdown
|