Skip to content

Releases: goaop/framework

Version 3.0.0

05 Apr 21:53
596fcae
Compare
Choose a tag to compare

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

12 Aug 19:40
f980f24
Compare
Choose a tag to compare

Small patch version to allow installation of Symfony5 components #447

Version 3.0.0

04 Dec 14:41
Compare
Choose a tag to compare
Version 3.0.0 Pre-release
Pre-release

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

04 Dec 13:30
f7fa0b3
Compare
Choose a tag to compare

This is a patch release with #425 bug fix.

Release 2.3.2

01 Aug 07:18
233f71c
Compare
Choose a tag to compare

Patch release that contains several small fixes

  • Fixed call to undefined method with new PhpParser for 2.x branch #419
  • Finder glob pattern #421
  • Fix memory leaks and late object disposal #423

Release 2.3.0

13 Jan 12:00
Compare
Choose a tag to compare

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

09 Feb 12:20
152abbf
Compare
Choose a tag to compare

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

18 Jul 11:49
2.1.2
Compare
Choose a tag to compare

This small patch introduces following fixes, thanks to @TheCelavi:

  • Implement workaround for Doctrine entities with metadata listener #327
  • CLI commands can be owerwritten for transparent integration with frameworks #330

Version 2.1.1 of Go! AOP Framework

25 Apr 12:30
Compare
Choose a tag to compare

Small patch version with fixes

  • Fix fnmatch issue on Windows machine #326
  • Fix incorrect usage of CachedAspectLoader when cache is not configured #319

Version 2.1.0 of Go! AOP Framework

04 Feb 16:16
2.1.0
Compare
Choose a tag to compare

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