/** * Returns whether the list of param tags features the given argument. * * @param ParamDescriptor[]|Collection $parameters * @param ArgumentDescriptor $argument * * @return boolean */ private function existsParamTagWithArgument($parameters, ArgumentDescriptor $argument) { foreach ($parameters as $parameter) { if ($argument->getName() == $parameter->getVariableName()) { return true; } } return false; }
/** * Exports the given reflection object to the parent XML element. * * This method creates a new child element on the given parent XML element * and takes the properties of the Reflection argument and sets the * elements and attributes on the child. * * @param \DOMElement $parent The parent element to augment. * @param ArgumentDescriptor $argument The data source. * * @return \DOMElement */ public function convert(\DOMElement $parent, ArgumentDescriptor $argument) { $child = new \DOMElement('argument'); $parent->appendChild($child); $child->setAttribute('line', $argument->getLine()); $child->setAttribute('by_reference', var_export($argument->isByReference(), true)); $child->appendChild(new \DOMElement('name', $argument->getName())); $child->appendChild(new \DOMElement('default'))->appendChild(new \DOMText($argument->getDefault())); $types = $argument->getTypes(); $typeStrings = array(); foreach ($types as $type) { $typeStrings[] = $type instanceof DescriptorAbstract ? $type->getFullyQualifiedStructuralElementName() : $type; } $child->appendChild(new \DOMElement('type', implode('|', $typeStrings))); return $child; }
/** * Exports the given reflection object to the parent XML element. * * This method creates a new child element on the given parent XML element * and takes the properties of the Reflection argument and sets the * elements and attributes on the child. * * If a child DOMElement is provided then the properties and attributes are * set on this but the child element is not appended onto the parent. This * is the responsibility of the invoker. Essentially this means that the * $parent argument is ignored in this case. * * @param \DOMElement $parent The parent element to augment. * @param ArgumentDescriptor $argument The data source. * @param \DOMElement $child Optional: child element to use instead of creating a new one on the $parent. * * @return void */ public function buildArgument(\DOMElement $parent, ArgumentDescriptor $argument, \DOMElement $child = null) { if (!$child) { $child = new \DOMElement('argument'); $parent->appendChild($child); } $child->setAttribute('line', $argument->getLine()); $child->appendChild(new \DOMElement('name', $argument->getName())); $child->appendChild(new \DOMElement('default'))->appendChild(new \DOMText($argument->getDefault())); $types = $argument->getTypes(); $child->appendChild(new \DOMElement('type', implode('|', $types))); }