Ejemplo n.º 1
0
 /**
  * @param RecordSchema $record
  * @return string
  */
 protected function renderNestedMany(RecordSchema $record)
 {
     $relationElement = new ClassElement($elementName = $this->createName($record->getName(), 'nested', 'relation'));
     //Clone schema from appropriate relation
     $relationElement->cloneSchema($relationClass = ManyToMany::class);
     $this->cleanElement($relationElement);
     $relationElement->setParent('\\' . $relationClass)->setInterfaces([]);
     $name = $record->getName();
     $relationElement->replaceComments('Record|Record[]|RecordIterator', $this->helper('iterator', $name) . "|\\{$name}[]");
     $relationElement->replaceComments(Record::class, $name);
     $relationElement->replaceComments("Record", '\\' . $name);
     $relationElement->replaceComments("Selector", $this->helper('selector', $name));
     $relationElement->replaceComments("@return \$this", "@return \$this|{$elementName}|\\{$name}[]");
     return $this->addClass($relationElement);
 }
Ejemplo n.º 2
0
 /**
  * @param string $name
  * @return ClassElement
  */
 protected function renderCompositor($name)
 {
     $element = new ClassElement($elementName = $this->createName($name, 'compositor'));
     $element->cloneSchema(Compositor::class)->setComment("Virtual Compositor for {$name}.");
     $element->setParent('\\' . Compositor::class)->setInterfaces([]);
     $this->cleanElement($element);
     $element->removeMethod('getParent');
     //Mounting our class
     $element->replaceComments(Document::class, $name);
     $element->replaceComments("Document", '\\' . $name);
     $element->replaceComments("@return \$this", "@return \$this|{$elementName}|\\{$name}[]");
     return $element;
 }