Reflect 3.0.0-alpha-1 has just been released.

3.0.0-alpha1 is only available in PHAR version. Source code will be published on github project repository with alpha 2 in the beginning of year 2015.

Plugin System is ready, but all plugins developped (Profiler, Log, Cache) were removed. Reason is that there are not yet customizable by an external config file.

There is an issue with Symfony ProgressBar. I’ve opened a report, so don’t assume it comes from Reflect.

News :

  • Ability to provide a file or a directory in command line, without to specify it in phpreflect.json config file.

  • Ability to write CLI result to file or URL (E.g: FTP) with the --output option. Don’t forget the --no-ansi option.

  • A new loc analyser to provide like actual structure analyser reporting such as Sebastian Bergmann PHPLoc.

Performance :

  • Current code won a gain performance in both side (analysis speed and memory consumption).

Changes :

  • The console --verbose option is now really used with its different levels. Try -vvv to get raw response of each command (easy debugging).

  • Replaces Symfony Console TableHelper, by Table helper (Ready for Symfony 3).

  • Replaces Symfony Console ProgressHelper, by ProgressBar helper (Ready for Symfony 3)

  • Uses Symfony Component 2.5 or better.

If you want to contribute to improve the next major version 3.0, have a look on roadmap.

Download :

Published by Laurent Laville on 2014-12-22

Reflect 3.0.0 roadmap.

If you want to contribute to improve the next major version 3.0, have a look on roadmap, I’ve opened today on github project page, and feel free post your comments.

Published by Laurent Laville on 2014-12-17

Reflect 3.0.0 enhanced the cache system.

Yesterday, I’ve introduced that development of new major version 3.0 of Reflect has started.

Perhaps you should asked how did I’ve improved analysis speed ?

Reflect v2 suffered that the cache plugin only wrote AST (Abstract Syntax Tree) results (from PHP-Parser).

Building nodes is not the bottleneck of Reflect. Translate each AST node to a corresponding Model, in one of the major part of memory consumption.

Reflect v3 analysers will get their informations directly from the AST nodes. Models are kept only for a compatibility with PHP Reflection (that is part of another subject).

If analysers need to store persistent data, they will do in each contextual AST nodes.

Remember AST in wrote in cache if the plugin is activated.

Actually only PHP-CompatInfo and its compatibility analyser will used this feature (store persistent data). See also post http://php5.laurent-laville.org/compatinfo/blog/201412-CompatInfo-4.0-preview-1.html

Published by Laurent Laville on 2014-12-16

Reflect 3.0.0 is currently under development.

Today, I would like to share with all users of Reflect, that follows development of the project, a big new !

Reflect 3.0.0 should be ready in the second part of January 2015.

This new major version has, at least, two main goals :

  • improve analysis speed

  • reduce consumption of memory

The current dev version (not yet published on my github account) won around 50% of performance (in time and memory usage).

The first alpha release (phar only) should be available next week, just before Christmas :)

Stay tuned, more news about v3 will come tomorrow and next days

Published by Laurent Laville on 2014-12-15

Reflect 2.6.1 has just been released.

Changes :

  • Replace old hard coded event names by constants; See Bartlett\Reflect\Events class

  • Avoid to collect more than once the same Model. Reduce memory consumption.

Bugs :

  • provider:display command work again now

  • Structure analyser may count interfaces and traits

  • GH-8 : Method call syntax not catched properly

  • GH-12 : Failed to detect Array short syntax and Array dereferencing.

Download :

Alternatively, you may use Composer and install it via Packagist.

Published by Laurent Laville on 2014-12-03