public function render()
    {
        $namespace = $this->namespace;
        $proxyClassName = $this->originalClassName;
        $originalClassName = $this->originalClassName . Compiler::ORIGINAL_CLASSNAME_SUFFIX;
        $classModifier = '';
        if ($this->reflectionService->isClassAbstract($this->fullOriginalClassName)) {
            $classModifier = 'abstract ';
        } elseif ($this->reflectionService->isClassFinal($this->fullOriginalClassName)) {
            $classModifier = 'final ';
        }

        $constantsCode = $this->renderConstantsCode();
        $propertiesCode = $this->renderPropertiesCode();
        $traitsCode = $this->renderTraitsCode();

        $methodsCode = isset($this->constructor) ? $this->constructor->render() : '';
        foreach ($this->methods as $proxyMethod) {
            $methodsCode .= $proxyMethod->render();
        }

        if ($methodsCode . $constantsCode === '') {
            return '';
        }
        $classCode = ($namespace !== '' ? 'namespace ' . $namespace . ";\n\n" : '') .
            "use Doctrine\\ORM\\Mapping as ORM;\n" .
            "use Neos\\Flow\\Annotations as Flow;\n" .
            "\n" .
            $this->buildClassDocumentation() .
            $classModifier . 'class ' . $proxyClassName . ' extends ' . $originalClassName . ' implements ' . implode(', ', array_unique($this->interfaces)) . " {\n\n" .
            $traitsCode .
            $constantsCode .
            $propertiesCode .
            $methodsCode .
            '}';
        return $classCode;
    }
public function render()
    {
        $namespace = $this->namespace;
        $proxyClassName = $this->originalClassName;
        $originalClassName = $this->originalClassName . Compiler::ORIGINAL_CLASSNAME_SUFFIX;
        $classModifier = '';
        if ($this->reflectionService->isClassAbstract($this->fullOriginalClassName)) {
            $classModifier = 'abstract ';
        } elseif ($this->reflectionService->isClassFinal($this->fullOriginalClassName)) {
            $classModifier = 'final ';
        }

        $constantsCode = $this->renderConstantsCode();
        $propertiesCode = $this->renderPropertiesCode();
        $traitsCode = $this->renderTraitsCode();

        $methodsCode = isset($this->constructor) ? $this->constructor->render() : '';
        foreach ($this->methods as $proxyMethod) {
            $methodsCode .= $proxyMethod->render();
        }

        if ($methodsCode . $constantsCode === '') {
            return '';
        }
        $classCode = ($namespace !== '' ? 'namespace ' . $namespace . ";\n\n" : '') .
            "use Doctrine\\ORM\\Mapping as ORM;\n" .
            "use Neos\\Flow\\Annotations as Flow;\n" .
            "\n" .
            $this->buildClassDocumentation() .
            $classModifier . 'class ' . $proxyClassName . ' extends ' . $originalClassName . ' implements ' . implode(', ', array_unique($this->interfaces)) . " {\n\n" .
            $traitsCode .
            $constantsCode .
            $propertiesCode .
            $methodsCode .
            '}';
        return $classCode;
    }
public function render ( ) { $ namespace = $ this -> namespace ; $ proxyClassName = $ this -> originalClassName ; $ originalClassName = $ this -> originalClassName . Compiler :: ORIGINAL_CLASSNAME_SUFFIX ; $ classModifier = '' ; if ( $ this -> reflectionService -> isClassAbstract ( $ this -> fullOriginalClassName ) ) { $ classModifier = 'abstract ' ; } elseif ( $ this -> reflectionService -> isClassFinal ( $ this -> fullOriginalClassName ) ) { $ classModifier = 'final ' ; } $ constantsCode = $ this -> renderConstantsCode ( ) ; $ propertiesCode = $ this -> renderPropertiesCode ( ) ; $ traitsCode = $ this -> renderTraitsCode ( ) ; $ methodsCode = isset ( $ this -> constructor ) ? $ this -> constructor -> render ( ) : '' ; foreach ( $ this -> methods as $ proxyMethod ) { $ methodsCode .= $ proxyMethod -> render ( ) ; } if ( $ methodsCode . $ constantsCode === '' ) { return '' ; } $ classCode = ( $ namespace !== '' ? 'namespace ' . $ namespace . ";\n\n" : '' ) . "use Doctrine\\ORM\\Mapping as ORM;\n" . "use Neos\\Flow\\Annotations as Flow;\n" . "\n" . $ this -> buildClassDocumentation ( ) . $ classModifier . 'class ' . $ proxyClassName . ' extends ' . $ originalClassName . ' implements ' . implode ( ', ' , array_unique ( $ this -> interfaces ) ) . " {\n\n" . $ traitsCode . $ constantsCode . $ propertiesCode . $ methodsCode . '}' ; return $ classCode ; }
Renders and returns the PHP code for this ProxyClass.

@return string
Renders and returns the PHP code for this ProxyClass .