wheakerd/php-mimic

A transparent AOP library for PHP.

Maintainers

Package info

github.com/wheakerd/mimic

pkg:composer/wheakerd/php-mimic

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-04-09 10:43 UTC

This package is auto-updated.

Last update: 2026-04-11 01:30:38 UTC


README

A transparent AOP library for PHP.

What is Mimic?

PHP-Mimic is a transparent AOP (Aspect-Oriented Programming) framework that intercepts class loading at the stream level. It reshapes code on-the-fly via AST (Abstract Syntax Tree) manipulation, enabling non-intrusive logic injection into any class—including final classes and methods—without modifying original source files or requiring manual proxies.

Core Philosophy

  • Transparent: Works with native new, static, and instanceof calls.
  • Intrusive but Safe: Capability to intercept final members and private scopes.
  • Debug-First: Integrated source-mapping ensures stack traces and error reports point back to original file paths and line numbers.
  • Zero Eval: No eval() is used. All code is processed via custom stream wrappers and the Zend OPcache.

Installation

composer require wheakerd/php-mimic

Quick Start

1. Initialize the Kernel

Register the aop:// protocol and hijack the autoloader.

$mimic = new MimicFactory();

$mimic->register(
    [
        TestCaseService::class => $composerLoader->findFile(TestCaseService::class),
    ],
)->intercept([TestCaseService::class, 'handle'], function (ProceedingJoinPoint $point) {
    var_dump('Print return value:' . $point->proceed());

    return 999;
});

// Direct your autoloader to use the aop:// prefix

License

BSD 3-Clause License (New or Revised)