/**
  * @Route("/testclass", name="homepage")
  *
  * @Method("GET")
  */
 public function indexAction()
 {
     $class = new BaseClass('Classes', 'BestClass');
     $class->addProperty(new ClassProperty('test', 'string'));
     $method = new ClassMethod('setTest');
     $method->addParameter(new MethodParameter('test', 'string'));
     $method->setReturnType(null);
     $class->addMethod($method);
     $classGenerator = new ClassGenerator($class);
     $classWriter = new ClassWriter($classGenerator, new Filesystem(), '/Users/justingriffith/Sites/CodeCreator/');
     $classWriter->write();
     return $this->render('default/index.html.twig');
 }
Example #2
0
 /**
  * Writes the class to a file.
  */
 public function write()
 {
     try {
         $dir = $this->path->isDir() ? $this->path->getPathname() : $this->path->getPath();
         $path = $dir . '/' . $this->baseClass->getClassName() . $this->baseClass->getExtension();
         if (!file_exists($dir)) {
             $this->fileSystem->mkdir($dir, 0777, true);
         }
         //if (!file_exists($path)) {
         file_put_contents($path, $this->baseClass->generate());
         //}
     } catch (IOExceptionInterface $e) {
     }
 }
    /**
     * @covers ::generate
     */
    public function testGenerate()
    {
        $class = $this->baseClass->generate();
        $expectedClass = '<?php

namespace App\\Classes\\;


/**
 * Class BaseClass
 *
 * @package App\\Classes\\
 */
class BaseClass {

}
';
        $this->assertEquals($class, $expectedClass);
        $this->assertRegexp('/namespace/', $class);
        $this->assertRegexp('/\\* Class BaseClass/', $class);
    }
 protected function generateImplementMethods()
 {
     $output = '';
     foreach ($this->baseClass->getImplements() as $implement) {
         $reflection = new \ReflectionClass($implement);
         foreach ($reflection->getMethods() as $method) {
             $implementor = new ClassMethod($method->name, $method);
             $implementor->setDescription('Implementation of ' . $method->getName() . ' interface method');
             $implementor->setBody(' // TODO: Code implementation');
             $output .= PHP_EOL . $implementor->generate() . PHP_EOL;
         }
     }
     return $output;
 }
 /**
  * @param stdClass $class
  * @param string   $name
  *
  * @return BaseClass
  */
 public function translateToBaseClass(stdClass $class, $name = '')
 {
     $baseClass = new BaseClass($this->yaml['namespace'], $name);
     $baseClass->setProperties($this->translatePropertiesToClassProperty($class->properties));
     $baseClass->setMethods($this->translateMethodsToClassMethod($class->methods));
     if (isset($class->namespace)) {
         $baseClass->setNameSpace($class->namespace);
     }
     if (isset($class->extends)) {
         $baseClass->setExtends($class->extends);
     }
     if (isset($class->implements)) {
         $baseClass->setImplements($class->implements);
     }
     if (isset($class->useStatements)) {
         foreach ($class->useStatements as $useStatement) {
             $baseClass->addUseStatement(new UseStatement($useStatement));
         }
     }
     return $baseClass;
 }