final public function generateClass()
    {
        static $docBlock;
        if (empty($docBlock)) {
            $writer = new Writer();
            $writer
                ->writeln('/**')
                ->writeln(' * CG library enhanced proxy class.')
                ->writeln(' *')
                ->writeln(' * This code was generated automatically by the CG library, manual changes to it')
                ->writeln(' * will be lost upon next generation.')
                ->write(' */')
            ;
            $docBlock = $writer->getContent();
        }

        $this->generatedClass = PhpClass::create()
            ->setDocblock($docBlock)
            ->setParentClassName($this->class->name)
        ;

        $proxyClassName = $this->getClassName($this->class);
        if (false === strpos($proxyClassName, NamingStrategyInterface::SEPARATOR)) {
            throw new \RuntimeException(sprintf('The proxy class name must be suffixed with "%s" and an optional string, but got "%s".', NamingStrategyInterface::SEPARATOR, $proxyClassName));
        }
        $this->generatedClass->setName($proxyClassName);

        if (!empty($this->interfaces)) {
            $this->generatedClass->setInterfaceNames(array_map(function($v) { return '\\'.$v; }, $this->interfaces));

            foreach ($this->getInterfaceMethods() as $method) {
                $method = PhpMethod::fromReflection($method);
                $method->setAbstract(false);

                $this->generatedClass->setMethod($method);
            }
        }

        if (!empty($this->generators)) {
            foreach ($this->generators as $generator) {
                $generator->generate($this->class, $this->generatedClass);
            }
        }

        return $this->generateCode($this->generatedClass);
    }
final public function generateClass()
    {
        static $docBlock;
        if (empty($docBlock)) {
            $writer = new Writer();
            $writer
                ->writeln('/**')
                ->writeln(' * CG library enhanced proxy class.')
                ->writeln(' *')
                ->writeln(' * This code was generated automatically by the CG library, manual changes to it')
                ->writeln(' * will be lost upon next generation.')
                ->write(' */')
            ;
            $docBlock = $writer->getContent();
        }

        $this->generatedClass = PhpClass::create()
            ->setDocblock($docBlock)
            ->setParentClassName($this->class->name)
        ;

        $proxyClassName = $this->getClassName($this->class);
        if (false === strpos($proxyClassName, NamingStrategyInterface::SEPARATOR)) {
            throw new \RuntimeException(sprintf('The proxy class name must be suffixed with "%s" and an optional string, but got "%s".', NamingStrategyInterface::SEPARATOR, $proxyClassName));
        }
        $this->generatedClass->setName($proxyClassName);

        if (!empty($this->interfaces)) {
            $this->generatedClass->setInterfaceNames(array_map(function($v) { return '\\'.$v; }, $this->interfaces));

            foreach ($this->getInterfaceMethods() as $method) {
                $method = PhpMethod::fromReflection($method);
                $method->setAbstract(false);

                $this->generatedClass->setMethod($method);
            }
        }

        if (!empty($this->generators)) {
            foreach ($this->generators as $generator) {
                $generator->generate($this->class, $this->generatedClass);
            }
        }

        return $this->generateCode($this->generatedClass);
    }
final public function generateClass ( ) { static $ docBlock ; if ( empty ( $ docBlock ) ) { $ writer = new Writer ( ) ; $ writer -> writeln ( '/**' ) -> writeln ( ' * CG library enhanced proxy class.' ) -> writeln ( ' *' ) -> writeln ( ' * This code was generated automatically by the CG library, manual changes to it' ) -> writeln ( ' * will be lost upon next generation.' ) -> write ( ' */' ) ; $ docBlock = $ writer -> getContent ( ) ; } $ this -> generatedClass = PhpClass :: create ( ) -> setDocblock ( $ docBlock ) -> setParentClassName ( $ this -> class -> name ) ; $ proxyClassName = $ this -> getClassName ( $ this -> class ) ; if ( false === strpos ( $ proxyClassName , NamingStrategyInterface :: SEPARATOR ) ) { throw new \ RuntimeException ( sprintf ( 'The proxy class name must be suffixed with "%s" and an optional string, but got "%s".' , NamingStrategyInterface :: SEPARATOR , $ proxyClassName ) ) ; } $ this -> generatedClass -> setName ( $ proxyClassName ) ; if ( ! empty ( $ this -> interfaces ) ) { $ this -> generatedClass -> setInterfaceNames ( array_map ( function ( $ v ) { return '\\' . $ v ; } , $ this -> interfaces ) ) ; foreach ( $ this -> getInterfaceMethods ( ) as $ method ) { $ method = PhpMethod :: fromReflection ( $ method ) ; $ method -> setAbstract ( false ) ; $ this -> generatedClass -> setMethod ( $ method ) ; } } if ( ! empty ( $ this -> generators ) ) { foreach ( $ this -> generators as $ generator ) { $ generator -> generate ( $ this -> class , $ this -> generatedClass ) ; } } return $ this -> generateCode ( $ this -> generatedClass ) ; }
Creates a new enhanced class

@return string
Creates a new enhanced class