Browse Source

Catch Errors in order to display a message in more cases. We also catch Exceptions to maintain compat with php 5.
Add check for simplexml extension.

teromene 6 years ago
parent
commit
ac6847045c
2 changed files with 17 additions and 5 deletions
  1. 15 3
      index.php
  2. 2 2
      lib/Exceptions.php

+ 15 - 3
index.php

@@ -77,6 +77,9 @@ if(!extension_loaded('libxml'))
 if(!extension_loaded('mbstring'))
 	die('"mbstring" extension not loaded. Please check "php.ini"');
 
+if(!extension_loaded('simplexml'))
+	die('"simplexml" extension not loaded. Please check "php.ini"');
+
 // configuration checks
 if(ini_get('allow_url_fopen') !== "1")
 	die('"allow_url_fopen" is not set to "1". Please check "php.ini');
@@ -199,10 +202,14 @@ try {
 			$bridge->setCache($cache);
 			$bridge->setCacheTimeout($cache_timeout);
 			$bridge->setDatas($params);
-		} catch(Exception $e) {
+		} catch(Error $e) {
 			http_response_code($e->getCode());
 			header('Content-Type: text/html');
 			die(buildBridgeException($e, $bridge));
+		} catch(Exception $e) {
+                        http_response_code($e->getCode());
+                        header('Content-Type: text/html');
+                        die(buildBridgeException($e, $bridge));
 		}
 
 		// Data transformation
@@ -211,11 +218,16 @@ try {
 			$format->setItems($bridge->getItems());
 			$format->setExtraInfos($bridge->getExtraInfos());
 			$format->display();
-		} catch(Exception $e) {
+		} catch(Error $e) {
 			http_response_code($e->getCode());
 			header('Content-Type: text/html');
 			die(buildTransformException($e, $bridge));
-		}
+                } catch(Exception $e) {
+                        http_response_code($e->getCode());
+                        header('Content-Type: text/html');
+                        die(buildBridgeException($e, $bridge));
+                }
+
 
 		die;
 	}

+ 2 - 2
lib/Exceptions.php

@@ -54,7 +54,7 @@ function buildGitHubIssueQuery($title, $body, $labels = null, $maintainer = null
  * provided parameter are invalid
  */
 function buildBridgeException($e, $bridge){
-	if(!($e instanceof \Exception) || !($bridge instanceof \BridgeInterface)) {
+	if(( !($e instanceof \Exception) && !($e instanceof \Error)) || !($bridge instanceof \BridgeInterface)) {
 		return null;
 	}
 
@@ -85,7 +85,7 @@ unable to receive or process the remote website's content!";
  * provided parameter are invalid
  */
 function buildTransformException($e, $bridge){
-	if(!($e instanceof \Exception) || !($bridge instanceof \BridgeInterface)) {
+	if(( !($e instanceof \Exception) && !($e instanceof \Error)) || !($bridge instanceof \BridgeInterface)) {
 		return null;
 	}