Skip to content

Releases: goaop/framework

Release 3.1.1

14 May 00:16

Choose a tag to compare

Patch release, which includes d268f6f to allow backward-compatibility with 3.x branch

3.1.0

14 May 00:17

Choose a tag to compare

What's Changed

  • Upgrade to GitHub-native Dependabot by @dependabot-preview[bot] in #474
  • old bug sync by @137-rick in #473
  • [FIX] Library generates non-nullable return type for nullable return … by @jakublabno in #484
  • Migrate to doctrine/annotations 2.x by @mdoelker in #489
  • fix: prevent generating "namespace ;" for classes without declared namespace by @daniel-sc in #490
  • [Step 1] Bump requirement to PHP 8.2 and parser-reflection 4.0.0-RC1 by @samsonasik in #492
  • Feature - refactor framework core to php82 by @lisachenko in #493
  • [Feature] Pointcut namespace refactoring by @lisachenko in #500
  • Update symfony/finder requirement from ^5.1 to ^5.1 || ^7.0 by @dependabot[bot] in #495
  • [BC Break] Internal container refactoring. by @lisachenko in #501
  • Add PHP 8.0+ Union and Intersection type support on SelfValueVisitor by @samsonasik in #504
  • [PHP8] Add broken tests with complex types by @lisachenko in #503
  • Fix deprecated GitHub Actions versions in CI workflows by @Copilot in #509
  • Update doctrine/orm requirement from ^2.5 to ^2.5 || ^3.0 by @dependabot[bot] in #494
  • Fix deprecated nullable parameter declarations in PHP 8.2+ by @Copilot in #511

New Contributors

Full Changelog: 3.0.0...3.1.0

Version 3.0.0

05 Apr 21:53
596fcae

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

Choose a tag to compare

Small patch version to allow installation of Symfony5 components #447

Version 3.0.0

04 Dec 14:41

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

Choose a tag to compare

This is a patch release with #425 bug fix.

Release 2.3.2

01 Aug 07:18
233f71c

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

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

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

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