# goaop/framework

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

Repository: https://github.com/goaop/framework
Canonical: https://ross.abutalabs.com/products/goaop-framework
Homepage: https://go.aopphp.com
Language: PHP
License: MIT
License Family: permissive
Topics: aspect-oriented-framework, php, aop, framework, interceptor, aspect-oriented-programming
Last push: 2026-08-26T19:40:26+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 83, longevity 100
- inputs: {"age_days": 5667, "days_push": 7, "days_rel": 112, "gap_med": 0, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1670, forks 165 (observed 2026-08-28T04:05:20.003314+00:00)

## What it is
Go! AOP is a pure-PHP aspect-oriented programming framework that lets developers define cross-cutting concerns (logging, caching, security) as aspect classes and weave them into existing code without modifying it. It intercepts method executions via pointcuts and advice, producing static PHP files with no eval() calls or PECL extensions.

## Use cases
- add logging to many php methods without touching source code
- apply caching aspects across a php application
- enforce security checks uniformly across classes
- intercept method calls in php for monitoring
- handle cross-cutting concerns in php cleanly
- weave transaction management into php services

## When to choose
- you need aspect-oriented programming in pure PHP with no extensions
- you want to modularize cross-cutting concerns like logging, caching, or security
- you need to intercept private, static, or final methods without changing source code
- your team requires auditable, eval-free code generation

## When to avoid
- your project is not written in PHP
- you only need simple dependency injection or event listeners rather than true AOP
- you cannot tolerate any runtime code transformation overhead
- you need AOP in a language with native support like Java (AspectJ)

## Facets
- artifact type: framework
- maturity: active
- function: middleware, logging, caching, security, developer-tools
- domain: web-development, backend, developer-tools, programming-languages
- platform: php, cross-platform
- tags: aspect-oriented-programming, aop, interception, pointcuts, code-weaving, cross-cutting-concerns

## Member repositories
- goaop/framework (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:20.003314+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:42:44.593114+00:00, confidence not recorded.
  - readme: https://github.com/goaop/framework (fetched 2026-08-28T04:05:20.003314+00:00, sha be663e5f1dbd)
  - homepage: https://go.aopphp.com (fetched 2026-08-29T11:15:57.529112+00:00, sha 7623a29a2202)
  - site_page: https://go.aopphp.com/docs (fetched 2026-08-29T11:15:57.551072+00:00, sha 4227377043c6)
  - site_page: https://go.aopphp.com/docs/introduction (fetched 2026-08-29T11:15:57.578554+00:00, sha 91fa9dd3e055)
  - site_page: https://go.aopphp.com/blog/2012/12/02/symfonycampua-2012-presentation-about-weaving-of-aspects-with-go-aop-library (fetched 2026-08-29T11:15:57.608339+00:00, sha 7276e2b4b256)
- Data as of 2026-08-30T08:39:29.467469+00:00.
