Ouzo\Utilities\DynamicProxy::getProxyClassDefinition PHP Method

getProxyClassDefinition() private static method

private static getProxyClassDefinition ( $name, $className )
    private static function getProxyClassDefinition($name, $className)
    {
        $class = new ReflectionClass($className);
        $relation = $class->isInterface() ? 'implements' : 'extends';
        $code = "class {$name} {$relation} {$className} { public \$_methodHandler;\n";
        $code .= "function __construct(\$methodHandler) { \$this->_methodHandler = \$methodHandler; }\n";
        foreach (self::getClassMethods($class) as $method) {
            $params = self::getParameterDeclaration($method);
            $modifier = $method->isStatic() ? 'static' : '';
            $code .= "{$modifier} function {$method->name}({$params}) { return call_user_func_array(array(\$this->_methodHandler, __FUNCTION__), func_get_args()); }\n";
        }
        $code .= '}';
        return $code;
    }