2.2.0 - Dec 5, 2015

    Added support for PHP 7.
    Added support for version 2.x of @nikic's PHP Parser.
    Added a bindTo() method to SerializableClosure to match Closure's interface.
    Replaced vendored hash_equals() implementation with the one in symfony/polyfill-php56.
    Fixed an issue that caused the "class" value of some closures' locations to be reported incorrectly.
    Fixed an issue with some edge cases related the closure binding and scope during unserialization.
    Fixed an unserialization issue where SuperClosures in user variables were not being unboxed.
    Improved error handling in the Serializer when the data being unserialized is invalid.


2.1.0 - Mar 11, 2015

    Adds support for signing serialized closures.
    Fixes #44, which prevents errors when using var_dump() or print_r() on unserialized closures.


2.0.0 - Jan 26, 2015

    Serializes closure bindings
    Serializes recursive closures
    Added Serializer object
        Main class to interact with for serializing closures
        Has special method for wrapping closures within an array/object
    Changed the ClosureParser into ClosureAnalyzer
        There are two kinds of analyzers:
            AstAnalyzer - Uses PHPParser library; many features
            TokenAnalyzer - Uses token_get_all(); fast
        Analyzers return an array of data about a closure
    Removed Jeremeamia from the namespace
    Adopted PSR-4
    Requires PHP 5.4+


2.0.0-beta.1 - Jan 19, 2015


1.0.2 - Jan 10, 2015

    Fixed #23, where "Undefined Variable Error" was being thrown for used variables whose that had a value of null.


2.0.0-alpha2 - Feb 5, 2014

    There are are now 2 parses supported
        AST Parser – Implemented with the nikic/PHPParser library. This parser is the most robust and allows you to resolve magic constants and fully-qualified class names in your closure. This is the default parser.
        Token Parser – Implemented using the code from the old jeremeamia/FunctionParser library. This library was used in a previous version of SuperClosure, and has been ported back in. While it does not handle all edge cases like resolving magic constants, it is MUCH faster (at least an order of magnitude).
    You can now serialize closure bindings – If you are using closures in PHP 5.4+, closures are bound to an object and scope such that you can reference $this inside of a closure. Unserialized closures from version 1 of SuperClosure needed to be rebound to an object manually to prevent failure in functions containing $this, but this version can handle bindings just fine.
    The ability to turn features on and off – Closure parser objects accept an array of options that can allow you to configure the capability vs. performance of your closure serialization. If you don't want to serialize closure bindings or resolve magic constants, you can turn those features off.
        Along with this is a option called turbo_mode that turns all the non-essential features off, This will make closure serialization much faster, but is the least robust at handling edge cases.
    The easy SuperClosure\serialize() function – If you have installed SuperClosure via Composer, then the SuperClosure\serialize() function will automagically be available. This allows you to easily serialize the closure with out have to import/use any of the classes from the library directly. This function also allows you to specify the options for the parser.
    I removed Jeremeamia from the namespace. However, there is a class alias automatically specified for the SerializableClosure class to maintain some backwards compatibility. You can use either SuperClosure\SerializableClosure or Jeremeamia\SuperClosure\SerializableClosure.
    The package is now PSR-4 compliant.


2.0-alpha1 - Jan 14, 2014

    There are are now 2 parses supported
        AST Parser – Implemented with the nikic/PHPParser library. This parser is the most robust and allows you to resolve magic constants and fully-qualified class names in your closure. This is the default parser.
        Token Parser – Implemented using the code from the old jeremeamia/FunctionParser library. This library was used in a previous version of SuperClosure, and has been ported back in. While it does not handle all edge cases like resolving magic constants, it is MUCH faster (at least an order of magnitude).
    You can now serialize closure bindings – If you are using closures in PHP 5.4+, closures are bound to an object and scope such that you can reference $this inside of a closure. Unserialized closures from version 1 of SuperClosure needed to be rebound to an object manually to prevent failure in functions containing $this, but this version can handle bindings just fine.
    The ability to turn features on and off – Closure parser objects accept an array of options that can allow you to configure the capability vs. performance of your closure serialization. If you don't want to serialize closure bindings or resolve magic constants, you can turn those features off.
        Along with this is a option called turbo_mode that turns all the non-essential features off, This will make closure serialization much faster, but is the least robust at handling edge cases.
    The easy serialize_closure() function – If you have installed SuperClosure via Composer, then the serialize_closure() function will automagically be available. This allows you to easily serialize the closure with out have to import/use any of the classes from the library directly. This function also allows you to specify the options for the parser.
    The package is now PSR-4 compliant. As soon as TravisCI is ready and Jordi (Composer author) gives the PHP world the green light, I'll remove the provided autoload.php in favor of Composer's PSR-4 support.


1.0.1 - Oct 9, 2013

    Updated Composer dependencies to use a tagged release of PHP Parser.
    Updated the SerializableClosure class to be easier to extend.
