Max F пре 5 година
родитељ
комит
89e69df9a6
5 измењених фајлова са 46 додато и 18 уклоњено
  1. 12 9
      src/App.php
  2. 11 3
      src/App/Middlewares/ErrorHandler.php
  3. 11 2
      src/App/Middlewares/UrlRouter.php
  4. 7 0
      src/App/Pipe.php
  5. 5 4
      src/App/Response.php

+ 12 - 9
src/App.php

@@ -9,6 +9,7 @@ use \KarmaFW\Database\Sql\SqlDb;
 
 use \KarmaFW\App\Request;
 use \KarmaFW\App\Response;
+use \KarmaFW\App\ResponseError;
 use \KarmaFW\App\Pipe;
 use \KarmaFW\App\Container;
 
@@ -80,7 +81,8 @@ class App
 		}
 
 		if (! defined('ENV')) {
-			define('ENV', 'prod');
+			$env = defined('ENVIRONMENT') ? ENVIRONMENT : 'prod';
+			define('ENV', $env);
 		}
 
 		if (! defined('DB_DSN')) {
@@ -108,15 +110,16 @@ class App
 			$response = $pipe->next($request, $response);
 
 		} catch (\Exception $e) {
-			header("HTTP/1.0 500 Internal Server Error");
-			echo "<h1>Server error</h1>";
+            $content = null;
 
-			if (ENV === 'dev') {
-				echo "<pre>";
-				print_r($e);
-				echo "</pre>";
-			}
-			exit;
+            if (ENV == 'dev') {
+                $title = "App CATCHED EXCEPTION";
+                $message = '<pre>' . print_r($e, true) . '</pre>';
+                $content = '<title>' . $title . '</title><h1>' . $title . '</h1><p>' . $message . '</p>';
+            }
+
+            //throw $e;
+            return new ResponseError(500, $content); 
 		}
 
 		return $response;

+ 11 - 3
src/App/Middlewares/ErrorHandler.php

@@ -4,6 +4,7 @@ namespace KarmaFW\App\Middlewares;
 
 use \KarmaFW\App\Request;
 use \KarmaFW\App\Response;
+use \KarmaFW\App\ResponseError;
 
 
 class ErrorHandler
@@ -24,9 +25,16 @@ class ErrorHandler
             $response = $next($request, $response);
 
         } catch (\Throwable $e) {
-            echo "ErrorHandler CATCHED EXCEPTION" . PHP_EOL; // TODO
-            print_r($e);
-        }
+            $content = null;
+
+            if (ENV == 'dev') {
+                $title = "ErrorHandler CATCHED EXCEPTION";
+                $message = '<pre>' . print_r($e, true) . '</pre>';
+                $content = '<title>' . $title . '</title><h1>' . $title . '</h1><p>' . $message . '</p>';
+            }
+
+            //throw $e;
+            return new ResponseError(500, $content);        }
 
         return $response;
     }

+ 11 - 2
src/App/Middlewares/UrlRouter.php

@@ -4,6 +4,7 @@ namespace KarmaFW\App\Middlewares;
 
 use \KarmaFW\App\Request;
 use \KarmaFW\App\Response;
+use \KarmaFW\App\ResponseError;
 use \KarmaFW\App\ResponseError404;
 use \KarmaFW\App\ResponseRedirect;
 use \KarmaFW\App\ResponseFile;
@@ -38,8 +39,16 @@ class UrlRouter
 			$response = $next($request, $response);
 
 		} catch (\Throwable $e) {
-			echo "UrlRouter CATCHED EXCEPTION" . PHP_EOL; // TODO
-			print_r($e);
+			$content = null;
+
+			if (ENV == 'dev') {
+				$title = "UrlRouter CATCHED EXCEPTION";
+				$message = '<pre>' . print_r($e, true) . '</pre>';
+				$content = '<title>' . $title . '</title><h1>' . $title . '</h1><p>' . $message . '</p>';
+			}
+
+			//throw $e;			
+			return new ResponseError(500, $content);
 		}
 
 		return $response;

+ 7 - 0
src/App/Pipe.php

@@ -2,6 +2,13 @@
 
 namespace KarmaFW\App;
 
+//use \KarmaFW\App\Request;
+//use \KarmaFW\App\Response;
+
+
+// https://mnapoli.fr/presentations/forumphp-middlewares/
+// https://github.com/oscarotero/psr7-middlewares
+
 
 class Pipe
 {

+ 5 - 4
src/App/Response.php

@@ -88,6 +88,11 @@ class Response
 		$this->content_type = $content_type;
 	}
 
+	public function getBody()
+	{
+		return $this->getContent(); 
+	}
+
 	public function getContent()
 	{
 		return $this->content;
@@ -147,12 +152,8 @@ class Response
 		}
 
 		if (! empty($this->status)) {
-			// TODO
-
 			$status_name = empty($this->status_name) ? "Unknown http status" : $this->status_name;
-
 			header('HTTP/1.0 ' . $this->status . ' ' . $status_name);
-
 			$this->headers['X-Status'] = $this->status . ' ' . $status_name;
 		}