Releases: goaop/framework
Version 3.0.0
Better late than never! This is next major release of Go! AOP that contains some improvements and uses new code features for better performance and stability.
Notable changes are:
- [BC BREAK] Switched to the PHP7.4 and upper, strict types, property and return type hints and new syntax
- [BC BREAK] Removed the Joinpoint->getThis() method, as not all joinpoints belongs to classes (eg. FunctionInvocation)
- [BC BREAK] Removed the Joinpoint->getStaticPart() method as it can return anything, better to use explicit methods
- [Feature] Introduced the new ClassJoinpoint interface with getScope(), getThis() and isDynamic() methods
- [Feature] Implemented parameter widening feature for generated code #380
- [Feature] AnnotatedReflectionProperty provides simple access to property annotations #388 by @TheCelavi
- [Feature] Switched to the
laminas/laminas-code
package to generate code for proxies - [Feature] Add private properties interception #412
- [Feature] Static code analysis with PhpStan was enabled
- [Feature] Migration from TravisCI to GitHub Actions
Notice: This version still doesn't support PHP8, see #466, mostly because of absence of PHP8-compatible parser reflection libraries. If you want to contribute this to one of existing projects, this will be very helpful.
Version 2.3.4
Small patch version to allow installation of Symfony5 components #447
Version 3.0.0
This is next major release of Go! AOP that contains some improvements and uses new code features for better performance and stability.
Notable changes are:
- [BC BREAK] Switched to the PHP7.2 and upper, strict types, return type hints and new syntax
- [BC BREAK] Removed the Joinpoint->getThis() method, as not all joinpoints belongs to classes (eg. FunctionInvocation)
- [BC BREAK] Removed the Joinpoint->getStaticPart() method as it can return anything, better to use explicit methods
- [Feature] Introduced the new ClassJoinpoint interface with getScope(), getThis() and isDynamic() methods
- [Feature] Implemented parameter widening feature for generated code #380
- [Feature] AnnotatedReflectionProperty provides simple access to property annotations #388 by @TheCelavi
- [Feature] Switched to the
zendframework/zend-code
package to generate code for proxies - [Feature] Add private properties interception #412
Version 2.3.3
This is a patch release with #425 bug fix.
Release 2.3.2
Release 2.3.0
This minor release introduces some fixes:
- Fix error with "self" references in top level namespace #397
- Use Symfony Finder component for faster enumeration #402
- [BC Break] Update
goaop/parser-reflection
dependency to 2.0+ #403
Please, be aware that #403 bumps the PHP minimum version for 2.x branch to be >=7.0.0. As minimum supported PHP version now is 7.2, I decided to drop 5.6 for 2.x branch too.
In emergency cases 2.3.1 patch can be released.
Version 2.2.0
This version introduces latest minor release in 2.x branch. Only security fixes and bug patches will be applied to the 2.x since current release.
Fixes:
- AdviceMatcher should reject abstract method as fix for #335, #337
- Fix wrong checking of member modifiers for static members, resolves #293
- Feature/detecting inconsistent weaving #346
- Fix incorrect optimization logic for transformers, resolves #355
- Introduce an option to configure cached reader for annotations, resolves #136, #358 and #245
Improvements:
- Replace unsupported HHVM with supported PHP7.2 in Travis matrix
- Inline definition of advices into classes and beautify formatting
- Improve PhpUnit integration and prepare reusable constraints, resolves #340 #350
- Add support for class initializations asserts. #354
- Apply short array syntax for files in 2.x branch
- Performance tuning
Features:
- Implementation of AST+token modification instead of direct source transforming #362. Be aware, that this feature can reduce the speed of proxy generation because of switching to the AST analysis.
- Implement return-type pointcuts for the framework, #370 #371. Now you can match methods by return type.
- Interception of final methods, resolves #372 #373. Yes, now you can intercept final methods in your classes with Go! AOP.
BC breaks on code level:
- d0c11d0 Simplify interface of IntroductionAdvisor, also allow only one interface/trait per introduction.
Version 2.1.2 of Go! AOP Framework
This small patch introduces following fixes, thanks to @TheCelavi:
Version 2.1.1 of Go! AOP Framework
Version 2.1.0 of Go! AOP Framework
Version 2.1.0 enables support for PHP7.1. As well it provides some useful features for you applications:
- Add support for the nullable types in PHP7.1, see #309, #314
- Add support for the
void
return types for PHP7.1, see #307 - Update the requirement for the
goaop/parser-reflection
library to use the latest version with PHP7.1 support. - Add a fix for non-absolute paths returned from the composer since PHP5.6 #295
- Add an ability to update invocation arguments via
Invocation->setArguments()
method #297 - Enable wildcard paths for the Enumerator, e.g
/*Bundle/*/Tests
, see #300 - Allow to pass an exception as a second argument to the invocation for the
AfterThrowing
type of adivce, see #302