|  Last change: | 
Improve code quality 
Refactor extension registry 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Add static extension methods 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Move resolvers' namespace 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Major refactor for better code maintainability 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
Fix meta files 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
wip 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
wip 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
wip 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
Refactor resolver 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
Refactor HandlesExtensionMethods trait 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
wip 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 
wip 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Allow the guard_extensions field to be bypassed 
 
In the previous implementation if the guard_extensions field was set to true, all extension methods were guarded and there was no way to specifically not guard some extensions. 
 
Now the default param value is null and if a boolean is given, the value trumps the global field. 
Improve handling of methods 
 
- Added a new guard param when registering guarded methods. 
- Removed the guarded_extensions array (now the guarded status is placed in the same extensions method array) 
- Added a new guard_extensions static field to allow guarding all registered extension methods 
Move ExtesionMethodLoader to its own namespace 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Fix issue with getExtensionMethods method 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Cleanup code 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Make static::$extensions declaration unneeded 
 
We no longer need to declare an empty static $extensions property in Extensible objects, it is handled automatically. 
Fix style 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Fix typos 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Allow to register multiple names for extension method 
 
# Provide links to any relevant tickets, articles or other resources 
Also allow to unregister multiple names in batch 
Add guarded extension methods 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Add missing key types for array in docblocks 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Refactor HandlesExtensionMethods::registerExtensionMethod 
 
Defer extension loading responsibility to the ExtensionMethodLoader class 
Declare some classes and methods as final 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Add missing parenthesis 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Remove not needed parenthesis 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Add missing typehints and change docblocks to generics syntax 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Add strict_type declarations 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Add missing methods to Extensible contract 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Add docblocks headers 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Rename ClassNotExtensionMethod exception 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Fix parent extension method call 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Make child objects inherit parent's registered extension methods 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Docblock and style fixes 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
Improve exception messages. 
 
# Explain why this change is being made 
 
# Provide links to any relevant tickets, articles or other resources 
 |