Example #1
0
 /**
  * Überprüft ob der vom CodeExporter exportierte PHP Code ausgeführt dasselbe ergebnis wieder type hat
  *
  * dies gewährleistet, dass der type so wie er instanziiert, dann exportiert und dann wieder ausgeführt wird derselbe ist wie die Instanz
  */
 protected function assertCodeExportEquals(WebforgeType $type)
 {
     $ce = new CodeExporter(new \Webforge\Common\CodeWriter());
     $phpCode = '$actualType = ' . $ce->exportType($type) . ';';
     eval($phpCode);
     if (!isset($actualType)) {
         $this->fail('Evald Code verursachte einen Fehler: ' . $phpCode);
     }
     $this->assertEquals($type, $actualType, 'PHPCode ist: ' . $phpCode);
 }
Example #2
0
 /**
  * Erstellt eine Funktion die für das Entity eine SetMeta mit allen Properties zurückgibt
  * 
  * @chainable
  */
 public function buildSetMetaGetter(CodeExporter $codeExporter = NULL)
 {
     if (!isset($codeExporter)) {
         $codeExporter = new CodeExporter(new CodeWriter());
     }
     $code = array();
     $code[] = 'return new \\Psc\\Data\\SetMeta(array(';
     foreach ($this->getProperties() as $property) {
         if ($property->getWasElevated()) {
             continue;
         }
         if (!$this->isMetaProperty($property)) {
             continue;
         }
         if ($property->getType() === NULL) {
             throw new EntityBuilderException('Property ' . $property->getName() . ' hat keinen Typ!');
         }
         $code[] = sprintf("  '%s' => %s,", $property->getName(), $codeExporter->exportType($property->getType()));
     }
     $code[] = '));';
     $this->createMethod('getSetMeta', array(), $code, GMethod::MODIFIER_STATIC | GMethod::MODIFIER_PUBLIC);
     return $this;
 }