src/Tweeper.php: harmonize error messages
authorAntonio Ospite <ao2@ao2.it>
Wed, 14 Nov 2018 14:57:36 +0000 (15:57 +0100)
committerAntonio Ospite <ao2@ao2.it>
Fri, 16 Nov 2018 09:28:16 +0000 (10:28 +0100)
Since the Tweeper class is supposed to be used as a library don't let
any error be fatal and convert all current uses of E_USER_ERROR into
E_USER_WARNING.

Also convert the few instances of E_USER_NOTICE into E_USER_WARNING.

Finally, stop using error_log as well in favour of trigger_error which
provides more context in the produced message.

src/Tweeper.php

index 22d16ab..7318900 100644 (file)
@@ -102,7 +102,7 @@ class Tweeper {
     ));
     $contents = curl_exec($ch);
     if (FALSE === $contents) {
-      trigger_error(curl_error($ch));
+      trigger_error(curl_error($ch), E_USER_WARNING);
     }
     curl_close($ch);
 
@@ -127,14 +127,14 @@ class Tweeper {
 
     $ret = curl_exec($ch);
     if (FALSE === $ret) {
-      trigger_error(curl_error($ch));
+      trigger_error(curl_error($ch), E_USER_WARNING);
       curl_close($ch);
       return FALSE;
     }
 
     $url_info = curl_getinfo($ch);
     if (FALSE === $url_info) {
-      trigger_error(curl_error($ch));
+      trigger_error(curl_error($ch), E_USER_WARNING);
     }
     curl_close($ch);
 
@@ -168,13 +168,13 @@ class Tweeper {
 
     $url_info = Tweeper::getUrlInfo($url);
     if (FALSE === $url_info) {
-      error_log("Failed to retrieve info for URL: " . $url);
+      trigger_error("Failed to retrieve info for URL: " . $url, E_USER_WARNING);
       return '';
     }
 
     $supported = in_array($url_info['content_type'], $supported_content_types);
     if (!$supported) {
-      error_log("Unsupported enclosure content type \"" . $url_info['content_type'] . "\" for URL: " . $url_info['url']);
+      trigger_error("Unsupported enclosure content type \"" . $url_info['content_type'] . "\" for URL: " . $url_info['url'], E_USER_WARNING);
       return '';
     }
 
@@ -222,7 +222,7 @@ class Tweeper {
 
     $output .= " line $error->line";
 
-    error_log($output);
+    trigger_error($output, E_USER_WARNING);
   }
 
   /**
@@ -249,7 +249,7 @@ class Tweeper {
 
     $xml_data = $serializer->serialize($data, 'xml', $serializer_options);
     if (!$xml_data) {
-      trigger_error("Cannot serialize data", E_USER_ERROR);
+      trigger_error("Cannot serialize data", E_USER_WARNING);
       return NULL;
     }
 
@@ -264,7 +264,7 @@ class Tweeper {
     $json_match_expr = '/window._sharedData = (.*);/';
     $ret = preg_match($json_match_expr, $html, $matches);
     if ($ret !== 1) {
-      trigger_error("Cannot match expression: $json_match_expr\n", E_USER_ERROR);
+      trigger_error("Cannot match expression: $json_match_expr\n", E_USER_WARNING);
       return NULL;
     }
 
@@ -326,7 +326,7 @@ class Tweeper {
   private function loadStylesheet($host) {
     $stylesheet = "file://" . __DIR__ . "/rss_converter_" . $host . ".xsl";
     if (FALSE === file_exists($stylesheet)) {
-      trigger_error("Conversion to RSS not supported for $host ($stylesheet not found)", E_USER_ERROR);
+      trigger_error("Conversion to RSS not supported for $host ($stylesheet not found)", E_USER_WARNING);
       return NULL;
     }
 
@@ -353,14 +353,14 @@ class Tweeper {
   public function tweep($src_url, $host=NULL, $validate_scheme=TRUE) {
     $url = parse_url($src_url);
     if (FALSE === $url) {
-      trigger_error("Invalid URL: $src_url", E_USER_ERROR);
+      trigger_error("Invalid URL: $src_url", E_USER_WARNING);
       return NULL;
     }
 
     if (TRUE === $validate_scheme) {
       $scheme = $url["scheme"];
       if (!in_array($scheme, array("http", "https"))) {
-        trigger_error("unsupported scheme: $scheme", E_USER_ERROR);
+        trigger_error("unsupported scheme: $scheme", E_USER_WARNING);
         return NULL;
       }
     }
@@ -368,7 +368,7 @@ class Tweeper {
     // if the host is not given derive it from the URL
     if (NULL === $host) {
       if (empty($url["host"])) {
-        trigger_error("Invalid host in URL: $src_url", E_USER_ERROR);
+        trigger_error("Invalid host in URL: $src_url", E_USER_WARNING);
         return NULL;
       }
       // Strip the leading www. to be more forgiving on input URLs.
@@ -397,7 +397,7 @@ class Tweeper {
 
     $output = $xsltProcessor->transformToXML($xmlDoc);
     if (FALSE === $output) {
-      trigger_error('XSL transformation failed.', E_USER_ERROR);
+      trigger_error('XSL transformation failed.', E_USER_WARNING);
       return NULL;
     }