protected function getLinks(WebsiteConfig $config, array $checkerConfig = [])
 {
     $result = [];
     foreach ($checkerConfig['pages'] as $page) {
         $result[] = $config->getUrl() . $page;
     }
     return $result;
 }
 public function parse(WebsiteConfig $config, array $checkerConfig = [])
 {
     if (empty($checkerConfig['blacklist'])) {
         return 'Config error, no blacklist configured';
     }
     $blacklistString = implode(', ', $this->getBlacklist($config->getUrl(), $checkerConfig['blacklist']));
     return ['Check ' . $this->getLink($config->getUrl(), $checkerConfig), 'With following blacklist: ' . $blacklistString];
 }
 public function check(WebsiteConfig $config, array $checkerConfig = [])
 {
     $failures = [];
     foreach ($checkerConfig as $page) {
         if (empty($page['page'])) {
             $failures[] = 'Config error, no page defined';
             continue;
         }
         $link = $config->getUrl() . $page['page'];
         $response = (new Client($link))->send();
         if (!$response->isOk()) {
             $failures = array_merge($failures, ['Can not request the sitemap at ' . $link . '.', 'The following error occurs: ' . $response->getStatusCode() . ' ' . $response->getReasonPhrase()]);
         }
         $failures = array_merge($failures, $this->checkPage($response->getBody(), $page));
     }
     return $failures;
 }
 private function getUrl(WebsiteConfig $config)
 {
     return $config->getUrl() . '/robots.txt';
 }