GitPedia
goaop

goaop/framework

:gem: Go! AOP PHP - modern aspect-oriented framework for the new level of software development

24 Releases
Latest: 1mo ago
Release 3.1.13.1.1Latest
lisachenkolisachenko·1mo ago·May 14, 2026
GitHub

Patch release, which includes https://github.com/goaop/framework/commit/d268f6fcc22eacf47a6c97917ca41cc3db5941d0 to allow backward-compatibility with 3.x branch

3.1.0
lisachenkolisachenko·1mo ago·May 14, 2026
GitHub

📋 What's Changed

  • Upgrade to GitHub-native Dependabot by @dependabot-preview[bot] in https://github.com/goaop/framework/pull/474
  • old bug sync by @137-rick in https://github.com/goaop/framework/pull/473
  • [FIX] Library generates non-nullable return type for nullable return … by @jakublabno in https://github.com/goaop/framework/pull/484
  • Migrate to doctrine/annotations 2.x by @mdoelker in https://github.com/goaop/framework/pull/489
  • fix: prevent generating "namespace ;" for classes without declared namespace by @daniel-sc in https://github.com/goaop/framework/pull/490
  • [Step 1] Bump requirement to PHP 8.2 and parser-reflection 4.0.0-RC1 by @samsonasik in https://github.com/goaop/framework/pull/492
  • Feature - refactor framework core to php82 by @lisachenko in https://github.com/goaop/framework/pull/493
  • [Feature] Pointcut namespace refactoring by @lisachenko in https://github.com/goaop/framework/pull/500
  • + 7 more

New Contributors

  • @dependabot-preview[bot] made their first contribution in https://github.com/goaop/framework/pull/474
  • @137-rick made their first contribution in https://github.com/goaop/framework/pull/473
  • @jakublabno made their first contribution in https://github.com/goaop/framework/pull/484
  • @mdoelker made their first contribution in https://github.com/goaop/framework/pull/489
  • @samsonasik made their first contribution in https://github.com/goaop/framework/pull/492
  • @dependabot[bot] made their first contribution in https://github.com/goaop/framework/pull/495
  • Full Changelog: https://github.com/goaop/framework/compare/3.0.0...3.1.0
Version 3.0.03.0.0
lisachenkolisachenko·5y ago·April 5, 2021
GitHub

📋 Changes

  • [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
  • + 2 more
Version 2.3.42.3.4
lisachenkolisachenko·5y ago·August 12, 2020
GitHub

Small patch version to allow installation of Symfony5 components #447

Version 3.0.03.0.0-RC1Pre-release
lisachenkolisachenko·6y ago·December 4, 2019
GitHub

📋 Changes

  • [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.32.3.3
lisachenkolisachenko·6y ago·December 4, 2019
GitHub

This is a patch release with #425 bug fix.

Release 2.3.22.3.2
lisachenkolisachenko·6y ago·August 1, 2019
GitHub

📋 Changes

  • 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.02.3.0
lisachenkolisachenko·7y ago·January 13, 2019
GitHub

📋 Changes

  • 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
Version 2.2.02.2.0
lisachenkolisachenko·8y ago·February 9, 2018
GitHub

📋 Changes

  • [x] AdviceMatcher should reject abstract method as fix for #335, #337
  • [x] Fix wrong checking of member modifiers for static members, resolves #293
  • [x] Feature/detecting inconsistent weaving #346
  • [x] Fix incorrect optimization logic for transformers, resolves #355
  • [x] Introduce an option to configure cached reader for annotations, resolves #136, #358 and #245
  • [x] Replace unsupported HHVM with supported PHP7.2 in Travis matrix
  • [x] Inline definition of advices into classes and beautify formatting
  • [x] Improve PhpUnit integration and prepare reusable constraints, resolves #340 #350
  • + 7 more
Version 2.1.2 of Go! AOP Framework2.1.2
lisachenkolisachenko·8y ago·July 18, 2017
GitHub

📋 Changes

  • [x] Implement workaround for Doctrine entities with metadata listener #327
  • [x] CLI commands can be owerwritten for transparent integration with frameworks #330
Version 2.1.1 of Go! AOP Framework2.1.1
lisachenkolisachenko·9y ago·April 25, 2017
GitHub

📋 Changes

  • [x] Fix `fnmatch` issue on Windows machine #326
  • [x] Fix incorrect usage of CachedAspectLoader when cache is not configured #319
Version 2.1.0 of Go! AOP Framework2.1.0
lisachenkolisachenko·9y ago·February 4, 2017
GitHub

📋 Changes

  • [x] Add support for the nullable types in PHP7.1, see #309, #314
  • [x] Add support for the `void` return types for PHP7.1, see #307
  • [x] Update the requirement for the `goaop/parser-reflection` library to use the latest version with PHP7.1 support.
  • [x] Add a fix for non-absolute paths returned from the composer since PHP5.6 #295
  • [x] Add an ability to update invocation arguments via `Invocation->setArguments()` method #297
  • [x] Enable wildcard paths for the Enumerator, e.g `/*Bundle/*/Tests`, see #300
  • [x] Allow to pass an exception as a second argument to the invocation for the `AfterThrowing` type of adivce, see #302
Version 1.2.0 of Go! AOP Framework1.2.0
lisachenkolisachenko·9y ago·February 4, 2017
GitHub

📋 Changes

  • [x] Add an ability to update invocation arguments in advices, see #297
  • [x] Restrict the `1.x` branch only to the PHP5.5, because `andrewsville/php-token-reflection` can work only with PHP=<5.5 and is not maintained anymore, see #305
  • [x] Fix broken logic of pattern matching for `includePath` and `excludePath` options, see #300, #311
Version 2.0.0 of Go! AOP Framework2.0.0
lisachenkolisachenko·10y ago·May 14, 2016
GitHub

📋 Changes

  • [x] Added a support for the PHP5.6 and 7.0 features: variadic arguments for methods, scalar type hints, return type hints
  • [x] Migrated from the `Andrewswille/Token-Reflection` to the `goaop/parser-reflection` library for PHP5.6 and PHP7.0 support
  • [x] Command-line tools for debugging aspects and advisors
  • [x] Dropped support for PHP<5.6, cleaned all old code
  • [x] [BC BREAK] Removed ability to rebind closures because of PHP restrictions, see #247
  • [x] [BC BREAK] Removed getDefaultFeatures() method from the AspectKernel, no need in it since PHP5.6
  • [x] Fixed cache files permission, now all cache files will be created with given cache mode, resolves #275
  • [x] Added context-sensitive matching that allows new checks #274 and resolves #272 by providing a new pointcut expression `!matchInherited()` to exclude all inherited methods from matching
  • + 7 more
Version 1.1.0 of Go! AOP Framework1.1.0
lisachenkolisachenko·10y ago·May 14, 2016
GitHub

📋 Changes

  • [x] Fixed cache files permission, now all cache files will be created with given cache mode, resolves #275
  • [x] Added context-sensitive matching that allows new checks #274 and resolves #272 by providing a new pointcut expression `!matchInherited()` to exclude all inherited methods from matching
  • [x] Fixed logic for complex pointcut expressions, combined with OR logic, resolves #217
  • [x] Fixed broken property interception generated source code for the constructor, resolves #271
  • [x] Property interceptor now use trait for common logic as well returns values by reference, see #54 and #232
  • Advice that controls an access to the properties
  • @param FieldAccess $fieldAccess Joinpoint
  • @Around("access(public|protected Demo\Example\PropertyDemo->*)")
  • + 1 more
Version 1.0.21.0.2
lisachenkolisachenko·10y ago·March 8, 2016
GitHub

Patch release fox fixing the issue #259, which dramatically reduce the performance of the framework.

Version 1.0.0 of Go! AOP Framework1.0.0
lisachenkolisachenko·10y ago·February 13, 2016
GitHub

📋 Changes

  • Dropped support for PHP<5.5, clean all old code
  • Tagged public methods and interfaces with @api tag. No more changes for them in future.
  • Refactored core code to use general interceptors for everything instead of separate classes
  • New static initialization pointcut to intercept the moment of class loading
  • New feature to intercept object initializations, requires INTERCEPT_INITIALIZATIONS to be enabled
  • [BC BREAK] remove class() pointcut from the grammar #189
  • [BC BREAK] make within() and @within() match all joinpoints #189
  • [BC BREAK] drop @annotation syntax. Add @execution pointcut
  • + 4 more
Version 0.6.10.6.1
lisachenkolisachenko·10y ago·July 28, 2015
GitHub

Minor patch to fix a bug with overwriting of original files

Version 0.6.0 of Go! AOP Framework0.6.0
lisachenkolisachenko·11y ago·February 1, 2015
GitHub

📋 Changes

  • Interceptor for magic methods via "dynamic" pointcut. This feature also gives an access for dynamic pointcuts with different checks and conditions.
  • PSR-4 standard for the codebase, thanks to @cordoval
  • Added a support for splat (...) operator for more efficient advice invocation (requires PHP5.6)
  • New feature system. All tunings of kernel are configured with feature-set. This breaks old configuration option `interceptFunctions=>true` use `'features' => $defaultFeatures | Features::INTERCEPT_FUNCTIONS` now
  • Proxy can generate more effective invocation call with `static::class` for PHP>=5.5
  • Bug-fixes with empty cache path and PSR4 code, thanks to @andy-shea
Version 0.5.0 of Go! AOP Framework0.5.0
lisachenkolisachenko·12y ago·May 24, 2014
GitHub

📋 Changes

  • Proxies are now stored in the separate files to allow more transparent debugging
  • Cache warmer command added
  • Extended pointcut syntax for or-ed methods: ClassName->method1|method2(*)
  • Access to the annotations from MethodInvocation instance
  • Support for read-only file systems (phar, GAE, etc)
  • Direct access to advisors (no more serialize/unserialize)
  • New @within pointcut to match classes by annotation class
  • Nice demo GUI
  • + 3 more
Version 0.4.3 of Go! AOP Framework0.4.3
lisachenkolisachenko·12y ago·December 19, 2013
GitHub

1. Add minor changes for supporting CLI-mode 2. Optimization: sort list of advices only during the cache creation phase 3. Optimization: do not split a source into array of lines if there is only one class per file

Version 0.4.2 of Go! AOP Framework0.4.2
lisachenkolisachenko·12y ago·December 19, 2013
GitHub

1. Switched to doctrine/annotations package instead of doctrine/common 2. Removed the `Demo` namespace from the composer and use it only for testing. 3. Optimized injection of advices and caching of callables 4. Some fixes for supporting Symfony2 and SensioDistributionBundle

Version 0.4.1 of Go! AOP Framework0.4.1
lisachenkolisachenko·12y ago·August 27, 2013
GitHub

📋 Changes

  • Better parsing of complex "include" expressions for Yii (by @zvirusz)
  • Support for dynamic arguments count for methods by checking for func_get_args() inside method body
  • Fixed a bug with autoloaders reodering (by @zvirusz)
Version 0.4.0 of Go! AOP Framework0.4.0
lisachenkolisachenko·12y ago·August 4, 2013
GitHub

📋 Changes

  • Privileged advices for aspect: allows to access private and protected properties and methods of objects inside advice
  • Full integration with composer that allows for easy configuration and workflow with AOP
  • Fix some bugs with caching on Windows
  • "True" pointcut references that gives the ability to compose a complex pointcut from a simple pointcuts.
  • Pointcut now accept "$this" in references to point to the current aspect instance
  • AspectContainer interface was extracted. This gives the way to integrate with another DIC. Look at Warlock framework.
  • Intercepting system functions such as `fopen()`, `file_get_contents()`, etc
  • Annotation property pointcut was added
  • + 2 more