public function validateEndpoint()
{
$url = $this->baseUrl . $this->endpoint;
$validator = Validator::createValidator('url', $this, []);
if ($validator->validate($url, $error)) {
// Crop fragment
if (($pos = strpos($this->endpoint, '#')) !== false) {
$this->endpoint = substr($this->endpoint, 0, $pos);
}
// Crop query
if (($pos = strpos($this->endpoint, '?')) !== false) {
$this->endpoint = substr($this->endpoint, 0, $pos);
}
// Parse params
$query = parse_url($url, PHP_URL_QUERY);
if (trim($query) !== '') {
foreach (explode('&', $query) as $couple) {
list($key, $value) = explode('=', $couple, 2) + [1 => ''];
$this->queryKeys[] = urldecode($key);
$this->queryValues[] = urldecode($value);
$this->queryActives[] = true;
}
}
} else {
$this->addError('endpoint', $error);
}
}