/** * @param string $name * @return ClassElement */ protected function renderSelector($name) { $element = new ClassElement($elementName = $this->createName($name, 'selector')); $element->cloneSchema(Selector::class)->setComment("Virtual Selector for {$name}."); $element->setParent('\\' . Selector::class)->setInterfaces([]); $this->cleanElement($element); //Mounting our class $element->replaceComments('RecordIterator', $this->helper('iterator', $name) . "|\\{$name}[]"); $element->replaceComments(Record::class, $name); $element->replaceComments("Record", '\\' . $name); $element->replaceComments("@return \$this", "@return \$this|{$elementName}|\\{$name}[]"); return $element; }
/** * @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; }