public function addChild($child, $name = null, $type = self::TYPE_DEFAULT) {
		if (! $child instanceof Descriptor) {
			$child = new static($child, $type);
		}
		
		if ($name === null) {
			$this->_children[] = $child;
			return $child;
		}
		
		$this->_children[$name] = $child;
		return $child;
	}
public function addChild($child, $name = null, $type = self::TYPE_DEFAULT) {
		if (! $child instanceof Descriptor) {
			$child = new static($child, $type);
		}
		
		if ($name === null) {
			$this->_children[] = $child;
			return $child;
		}
		
		$this->_children[$name] = $child;
		return $child;
	}
public function addChild ( $ child , $ name = null , $ type = self :: TYPE_DEFAULT ) { if ( ! $ child instanceof Descriptor ) { $ child = new static ( $ child , $ type ) ; } if ( $ name === null ) { $ this -> _children [ ] = $ child ; return $ child ; } $ this -> _children [ $ name ] = $ child ; return $ child ; }
Add the child

@param  Descriptor | string $child
@param  string              $name
@return Descriptor
Add the child