PackageTrack
Sign in Get early access

goaop/framework

Framework for aspect-oriented programming in PHP.

3.1.1 4.1M downloads/mo #4851 most downloaded on Packagist goaop/framework

What this package is like to depend on

Last release 4 months ago

01 Apr 2026

Ships unpredictably

gaps range from 2 weeks to 4.1 years

Some releases are documented

notes for 17 of 32 stable releases

Nothing withdrawn

no release was ever pulled

14 years old

38 releases · first in 2013

1 release in the last 12 months

see the full history below

Release timeline

38 releases · Jan 2013 to Apr 2026
2014 2016 2018 2020 2022 2024 2026
Release Pre-release

Releases

latest 38
  1. 3.1.1 01 Apr 2026
    Release notes

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

    Open source →
    Release notes

    d268f6f

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

    Open source →
  2. 3.1.0 28 Jul 2025
    Release notes

    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

    Open source →
  3. 3.0.0 08 Jan 2021
    Release notes

    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.

    Open source →
    Release notes
    • [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
    Open source →
  4. 3.0.0-RC2 04 Feb 2020 pre-release

    Nothing published for this version

  5. 3.0.0-RC1 04 Dec 2019 pre-release

    Nothing published for this version

  6. 2.3.5 11 Jun 2021

    Nothing published for this version

  7. 2.3.4 06 Apr 2020
    Release notes

    Small patch version to allow installation of Symfony5 components #447

    Open source →
  8. 2.3.3 13 Aug 2019
    Release notes

    This is a patch release with #425 bug fix.

    Open source →
  9. 2.3.2 01 Aug 2019
    Release notes

    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
    Open source →
  10. 2.3.1 14 Feb 2019

    Nothing published for this version

  11. 2.3.0 05 Jan 2019

    Nothing published for this version

  12. 2.2.0 05 Jan 2018

    Nothing published for this version

  13. 2.1.2 12 Jul 2017

    Nothing published for this version

  14. 2.1.1 25 Apr 2017

    Nothing published for this version

  15. 2.1.0 04 Feb 2017

    Nothing published for this version

  16. 2.0.0 14 May 2016
    Release notes
    • Dropped support for PHP<5.6, clean all old code
    • [BC BREAK] Removed ability to rebind closures, because of PHP restrictions, see #247
    • [BC BREAK] Removed getDefaultFeatures() method from the AspectKernel, no need in it since PHP5.6
    • Migrated from the Andrewswille/Token-Reflection to the goaop/parser-reflection library for PHP5.6 and PHP7.0 support
    • Added support for PHP5.6 and 7.0 features: variadic methods, scalar type hints, return type hints
    • [Feature] Command-line tools for debugging aspects and advisors
    Open source →
  17. 2.0.0-alpha.1 07 Mar 2016 pre-release

    Nothing published for this version

  18. 1.2.1 25 Apr 2017

    Nothing published for this version

  19. 1.2.0 10 Jan 2017

    Nothing published for this version

  20. 1.1.1 23 May 2016

    Nothing published for this version

  21. 1.1.0 03 May 2016

    Nothing published for this version

  22. 1.0.2 07 Mar 2016

    Nothing published for this version

  23. 1.0.1 28 Feb 2016

    Nothing published for this version

  24. 1.0.0 13 Feb 2016
    Release notes
    • 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
    • Pointcuts can be build now directly from closures via PointcutBuilder class
    • Do not create files in the cache, if no aspects were applied to them, respects includePath option now
    • FilterInjector is now disabled by default, this job for composer integration now
    • Automatic opcache invalidation for cache state file
    Open source →
  25. 1.0.0-alpha.2 19 Oct 2015 pre-release

    Nothing published for this version

  26. 1.0.0-alpha.1 05 May 2015 pre-release

    Nothing published for this version

  27. 0.6.1 05 Jul 2015
    Release notes
    • Minor patch to fix a bug with overwriting files
    Open source →
  28. 0.6.0 01 Feb 2015
    Release notes
    • 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
    • Make pointcut grammar class compatible with PHP7.0
    Open source →
  29. 0.5.0 08 Jul 2014
    Release notes
    • 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 for method from MethodInvocation
    • 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
    • Deprecate the usage of submodules for framework
    • Inheritance support during class-loading and weaving
    • List of small fixes and imrovements
    Open source →
  30. 0.5.0-RC1 24 May 2014 pre-release

    Nothing published for this version

  31. 0.4.3 03 Nov 2013

    Nothing published for this version

  32. 0.4.2 19 Sep 2013

    Nothing published for this version

  33. 0.4.1 27 Aug 2013
    Release notes
    • 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)
    Open source →
  34. 0.4.0 04 Aug 2013
    Release notes
    • 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 (Allows for abstract aspects and abstract pointcuts)
    • 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
    • Ability to declare multiple interfaces and/or traits with single DeclareParent introduction
    • DeclareError interceptor was added. This can be used for generating an runtime error for methods that should not be executed in such a way.
    Open source →
  35. 0.3.0 27 May 2013
    Release notes
    • Support for dynamic pointcuts: pointcut that match a specific point in the code, if it is under the control flow (look at AspectJ cflow and cflowbelow)
    • Performance optimizations
    • Case-sensitive matching for pointcuts
    • Primitive pointcuts (&&, ||, !)
    • [BC break] Changes in the kernel configuration (look at the demo for appLoader and autoloadPaths)
    • Fix a logic bug for a composite pointcuts
    Open source →
  36. 0.2.0 15 Mar 2013
    Release notes
    • Intercepting methods in traits
    • Pointcut parser/grammar
    • Huge pointcuts refactoring, cleaning
    • Lazy loading services, pointcuts
    Open source →
  37. 0.1.1 20 Jan 2013
    Release notes
    • Introduction advice support
    • Fix bug with composer autoloader prepending
    • Fix doctrine/common dependency: >=2.0.0, <2.4.0
    Open source →
  38. 0.1.0 08 Jan 2013
    Release notes
    • Initial release of library
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive