Neos\Flow\ObjectManagement\Proxy\ProxyMethod::render PHP Метод

render() публичный Метод

Renders the PHP code for this Proxy Method
public render ( ) : string
Результат string PHP code
    public function render()
    {
        $methodDocumentation = $this->buildMethodDocumentation($this->fullOriginalClassName, $this->methodName);
        $methodParametersCode = $this->methodParametersCode !== '' ? $this->methodParametersCode : $this->buildMethodParametersCode($this->fullOriginalClassName, $this->methodName);
        $callParentMethodCode = $this->buildCallParentMethodCode($this->fullOriginalClassName, $this->methodName);
        $staticKeyword = $this->reflectionService->isMethodStatic($this->fullOriginalClassName, $this->methodName) ? 'static ' : '';
        $visibility = $this->visibility === null ? $this->getMethodVisibilityString() : $this->visibility;
        $returnType = $this->reflectionService->getMethodDeclaredReturnType($this->fullOriginalClassName, $this->methodName);
        $returnTypeDeclaration = $returnType !== null ? ' : ' . $returnType : '';
        $code = '';
        if ($this->addedPreParentCallCode !== '' || $this->addedPostParentCallCode !== '' || $this->methodBody !== '') {
            $code = "\n" . $methodDocumentation . '    ' . $staticKeyword . $visibility . ' function ' . $this->methodName . '(' . $methodParametersCode . "){$returnTypeDeclaration}\n    {\n";
            if ($this->methodBody !== '') {
                $code .= "\n" . $this->methodBody . "\n";
            } else {
                $code .= $this->addedPreParentCallCode;
                if ($this->addedPostParentCallCode !== '') {
                    $code .= '            $result = ' . ($callParentMethodCode === '' ? "NULL;\n" : $callParentMethodCode);
                    $code .= $this->addedPostParentCallCode;
                    $code .= "        return \$result;\n";
                } else {
                    $code .= $callParentMethodCode === '' ? '' : '        return ' . $callParentMethodCode . ";\n";
                }
            }
            $code .= "    }\n";
        }
        return $code;
    }