Skip to content

xycczZ/proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

// 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages