xycc/proxy

proxy

Maintainers

Details

github.com/xycczZ/proxy

Source

Issues

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/xycc/proxy

dev-master 2022-07-09 12:26 UTC

This package is auto-updated.

Last update: 2025-09-09 19:20:27 UTC


README

// Aa.php
class Aa {
    public function __construct(private string $a) {
        
    }
    
    public function getA() {
        return $this->a . static::class;
    }
}

$enhancer = new \Xycc\Proxy\Enhancer(
    $tempPath, // directory to place the generated files
    __DIR__ . '/Aa.php', // file path of the class to proxy
    new class implements \Xycc\Proxy\Interceptor\MethodInterceptor {
        public function __invoke(object $obj,string $method,array $args,\Xycc\Proxy\Proxy\MethodProxy $methodProxy){
            // before ...
            if ($method === 'getA') {
                $result = $methodProxy->invokeSuper($obj, $method, $args); // call original method
                return 'proxy' . $result;
            }
            
            return $methodProxy->invokeSuper($obj, $method, $args);
        }
    }
);

$proxy = $enhancer->create('~~'/*constructor args*/);
$proxyResult = $proxy->getA(); // proxy~~Aa