示例#1
0
 /**
  * 
  * 
  * wird die Datei nicht übergeben, wird diese in den EntitiesPath des Modules geschrieben ($this->getGClass()->getClassName().php)
  * auch wenn $this->withRepository gesetzt ist, schreibt dies nur das Entity (wegen overwrite)
  * 
  * @return File
  */
 public function write(File $file = NULL, $overwrite = NULL)
 {
     $this->classWriter->setClass($this->class);
     $this->classWriter->addImport(new GClass('Psc\\Data\\ArrayCollection'));
     $this->classWriter->setUseStyle('lines');
     $this->classWriter->addImport(new GClass('Doctrine\\ORM\\Mapping'), 'ORM');
     if (!isset($file)) {
         $file = $this->inferFile($this->class);
     }
     $this->classWriter->write($file, array(), $overwrite);
     $this->classWriter->syntaxCheck($file);
     $this->writtenFile = $file;
     return $file;
 }
 public function createClassMetadata(GClass $gClass)
 {
     // da wir gClass mehrmals im Test evalen könnten, erzeugen wir einen unique hash für den classname und übergeben den
     // der class metadata
     $className = uniqid($gClass->getClassName());
     $gClass->setClassName($className);
     $gClass->createDocBlock()->addAnnotation(Annotation::createDC('Entity'));
     $classWriter = new ClassWriter($gClass);
     $classWriter->setUseStyle('lines');
     $classWriter->addImport(new GClass('Doctrine\\ORM\\Mapping'), 'ORM');
     // braucht einen AnnotationReader nicht SimpleAnnotationReader
     $classWriter->write($file = $this->newFile('entity.' . $gClass->getClassName() . '.php'));
     require $file;
     $cm = new ClassMetadata($gClass->getFQN());
     $cm->initializeReflection(new \Doctrine\Common\Persistence\Mapping\RuntimeReflectionService());
     $this->annotationDriver->loadMetadataForClass($gClass->getFQN(), $cm);
     $file->delete();
     return $cm;
 }
示例#3
0
 /**
  * @expectedException Psc\Code\Generate\Exception
  */
 public function testUseImplicitDoubleAlias()
 {
     $writer = new ClassWriter();
     $writer->setClass(new GClass('TestClass'));
     $writer->addImport(new GClass('Webforge\\Common\\System\\File'));
     $writer->addImport(new GClass('Webforge\\Common\\ArrayUtilnother\\File'));
 }