src/Service/ServiceProxy.php
private static function getMethodsTemplate(array $reflectionMethods): string
    {
        $template = "";
        foreach ($reflectionMethods as $reflectionMethod) {
            $methodName = $reflectionMethod->getName();

            // not to overrided method
            if ($reflectionMethod->isConstructor() || $reflectionMethod->isStatic() || strpos($methodName, '__') !== false) {
                continue;
            }

            // the template of parameter
            $template .= " public function $methodName (";
            $template .= self::getParameterTemplate($reflectionMethod);
            $template .= ' ) ';

            // the template of return type
            $reflectionMethodReturn = $reflectionMethod->getReturnType();
            if ($reflectionMethodReturn !== null) {
                $returnType = $reflectionMethodReturn->__toString();
                $returnType = ($returnType == 'self') ? $reflectionMethod->getDeclaringClass()->getName() : $returnType;
                $template   .= " : $returnType";
            }

            // overrided method
            $template
                .= "{
                \$params = func_get_args();
                return \$this->call('{$methodName}', \$params);
            }
            ";
        }

        return $template;
    }
private static function getMethodsTemplate(array $reflectionMethods): string
    {
        $template = "";
        foreach ($reflectionMethods as $reflectionMethod) {
            $methodName = $reflectionMethod->getName();

            // not to overrided method
            if ($reflectionMethod->isConstructor() || $reflectionMethod->isStatic() || strpos($methodName, '__') !== false) {
                continue;
            }

            // the template of parameter
            $template .= " public function $methodName (";
            $template .= self::getParameterTemplate($reflectionMethod);
            $template .= ' ) ';

            // the template of return type
            $reflectionMethodReturn = $reflectionMethod->getReturnType();
            if ($reflectionMethodReturn !== null) {
                $returnType = $reflectionMethodReturn->__toString();
                $returnType = ($returnType == 'self') ? $reflectionMethod->getDeclaringClass()->getName() : $returnType;
                $template   .= " : $returnType";
            }

            // overrided method
            $template
                .= "{
                \$params = func_get_args();
                return \$this->call('{$methodName}', \$params);
            }
            ";
        }

        return $template;
    }
private static function getMethodsTemplate ( array $ reflectionMethods ) : string { $ template = "" ; foreach ( $ reflectionMethods as $ reflectionMethod ) { $ methodName = $ reflectionMethod -> getName ( ) ; // not to overrided method if ( $ reflectionMethod -> isConstructor ( ) || $ reflectionMethod -> isStatic ( ) || strpos ( $ methodName , '__' ) !== false ) { continue ; } // the template of parameter $ template .= " public function $methodName (" ; $ template .= self :: getParameterTemplate ( $ reflectionMethod ) ; $ template .= ' ) ' ; // the template of return type $ reflectionMethodReturn = $ reflectionMethod -> getReturnType ( ) ; if ( $ reflectionMethodReturn !== null ) { $ returnType = $ reflectionMethodReturn -> __toString ( ) ; $ returnType = ( $ returnType == 'self' ) ? $ reflectionMethod -> getDeclaringClass ( ) -> getName ( ) : $ returnType ; $ template .= " : $returnType" ; } // overrided method $ template .= "{
                \$params = func_get_args();
                return \$this->call('{$methodName}', \$params);
            }
            " ; } return $ template ; }
return template of method

@param \ReflectionMethod[] $reflectionMethods

@return string
return template of method