Esempio n. 1
0
 private function getMessageFromMatch(Response $response) : string
 {
     $internalErrors = libxml_use_internal_errors(true);
     $dom = new \DOMDocument();
     $dom->loadHTML($response->getBody());
     libxml_use_internal_errors($internalErrors);
     $xpath = new \DOMXPath($dom);
     return sprintf('[ [%s](%s) ] %s', $dom->getElementsByTagName('h1')->item(0)->textContent, $response->getRequest()->getUri(), $xpath->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' dc-title ')]")->item(0)->textContent);
 }
Esempio n. 2
0
 /**
  * @uses getFunctionDetails()
  * @uses getClassDetails()
  * @uses getBookDetails()
  * @uses getPageDetailsFromH2()
  * @param HttpResponse $response
  * @return string
  */
 private function getMessageFromMatch(HttpResponse $response) : string
 {
     $doc = domdocument_load_html($response->getBody());
     $url = $response->getRequest()->getUri();
     try {
         $details = preg_match('#/(book|class|function)\\.[^.]+\\.php$#', $url, $matches) ? $this->{"get{$matches[1]}Details"}($doc) : $this->getPageDetailsFromPageContent($doc);
         return sprintf("[ [`%s`](%s) ] %s", $details[0], $url, $details[1]);
     } catch (NoComprendeException $e) {
         return sprintf("That [manual page](%s) seems to be in a format I don't understand", $url);
     } catch (\Throwable $e) {
         return 'Something went badly wrong with that lookup... ' . $e->getMessage();
     }
 }
Esempio n. 3
0
 /**
  * Generates a new exception using the response to provide details.
  *
  * @param Response $response HTTP response to generate the exception from
  * @return AcmeException exception generated from the response body
  */
 private function generateException(Response $response)
 {
     $body = $response->getBody();
     $status = $response->getStatus();
     $info = json_decode($body);
     $uri = $response->getRequest()->getUri();
     if (isset($info->type, $info->detail)) {
         return new AcmeException("Invalid response: {$info->detail}.\nRequest URI: {$uri}.", $info->type);
     }
     return new AcmeException("Invalid response: {$body}.\nRequest URI: {$uri}.", $status);
 }