/** * @param Asset $asset */ protected function checkAsset(Asset $asset) { if (!$this->shouldBeChecked($asset) || !$this->observer->pageToCheck($asset)) { return; } $cookies = $this->config->getCookies(); foreach ($cookies as $key => $cookie) { $cookie['Domain'] = $this->basePage->host; $cookies[$key] = new SetCookie($cookie); } $jar = new CookieJar(false, $cookies); try { $response = $this->client->request('GET', $asset->getURL(), ['cookies' => $jar]); } catch (RequestException $exception) { $response = $exception->getResponse(); $asset->setResponseCode(Asset::CODE_ERROR); } if ($response) { $asset->setResponseCode($response->getStatusCode()); } $this->observer->pageChecked($asset, $response); $this->checkedAssets[] = $asset; if (!$response) { return; } if (!$this->isExternal($asset) && $this->isHtmlPage($response)) { $this->checkAllAssets($response->getBody()->getContents(), $asset); } }