1: <?php
2: 3: 4: 5: 6: 7:
8: function loadConfig()
9: {
10: $config = require_once __DIR__ . '/../App/config.php';
11: foreach ($config as $key => $value) {
12: $_ENV[$key] = $value;
13: }
14: }
15: loadConfig();
16: set_error_handler("ErrorHandler");
17: set_exception_handler("ExceptionHandler");
18: 19: 20: 21:
22: function ExceptionHandler($exception)
23: {
24: header("HTTP/1.0 500 Server Error");
25: if($_ENV['debug'] == true)
26: {
27: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
28: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#f77878; margin:10px 0px;text-align:center;">ERROR ENCOUNTERED</div>';
29: echo "<b>UNCAUGHT EXCEPTION ::</b> " . $exception->getMessage();
30: echo "<br/>";
31: echo "<b>IN FILE ::</b> " . $exception->getFile();
32: echo "<br/>";
33: echo "<b>ON LINE ::</b> " . $exception->getLine();
34: echo "<br/>";
35: $trace = str_replace('#', "<br/>»", $exception->getTraceAsString());
36: $trace = str_replace(': ','<br/>»»',$trace);
37: echo "<b>STACK TRACE ::</b> ".$trace;
38: echo '</div>';
39: }
40: else
41: {
42: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
43: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#f77878; margin:10px 0px;text-align:center;">';
44: echo "OOP's we crashed onto something !";
45: echo '</div></div>';
46: error_log($exception);
47: }
48: }
49:
50: 51: 52: 53: 54: 55: 56: 57:
58: function ErrorHandler($errno, $errstr, $errfile, $errline)
59: {
60: if (!(error_reporting() & $errno))
61: {
62: return;
63: }
64: header("HTTP/1.0 500 Server Error");
65: if($_ENV['debug'] == true)
66: {
67: switch ($errno)
68: {
69: case E_ERROR:
70: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
71: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#f77878; margin:10px 0px;text-align:center;">Error Encountered</div>';
72: echo "<b>ERROR ::</b> " . $errstr;
73: echo "<br/>";
74: echo "<b>IN FILE ::</b> " . $errfile;
75: echo "<br/>";
76: echo "<b>ON LINE ::</b> " . $errline;
77: echo '</div>';
78: break;
79: case E_WARNING:
80: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
81: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#f4ff95; margin:10px 0px;text-align:center;">Error Encountered</div>';
82: echo "<b>WARNING ::</b> " . $errstr;
83: echo "<br/>";
84: echo "<b>IN FILE ::<b> " . $errfile;
85: echo "<br/>";
86: echo "<b>ON LINE ::<b> " . $errline;
87: echo '</div>';
88: break;
89: case E_PARSE:
90: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
91: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#baedf3; margin:10px 0px;text-align:center;">Error Encountered</div>';
92: echo "<b>COMPILATION ERROR ::</b> " . $errstr;
93: echo "<br/>";
94: echo "<b>IN FILE ::</b> " . $errfile;
95: echo "<br/>";
96: echo "<b>ON LINE ::</b> " . $errline;
97: echo '</div>';
98: break;
99: case E_NOTICE:
100: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
101: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#d8b4ff; margin:10px 0px;text-align:center;">Error Encountered</div>';
102: echo "<b>NOTICE ::</b> " . $errstr;
103: echo "<br/>";
104: echo "<b>IN FILE ::</b> " . $errfile;
105: echo "<br/>";
106: echo "<b>ON LINE ::</b> " . $errline;
107: echo '</div>';
108: break;
109: default:
110: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
111: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#b4ffd5; margin:10px 0px;text-align:center;">Error Encountered</div>';
112: echo "<b>UNKNOWN EXCEPTION ::</b> " . $errno;
113: echo "<br/>";
114: echo "<b>DETAILS ::</b> " . $errstr;
115: echo '</div>';
116: break;
117: }
118: }
119: else
120: {
121: $errDetails=array(
122: 'errno' => $errno,
123: 'errstr' => $errstr,
124: 'errfile' => $errfile,
125: 'errline' => $errline
126: );
127: echo '<div style="max-width: 600px;background-color: #ddd; margin:10px auto; border: 1px solid #000000;text-align: left; padding:10px 40px 10px 40px; word-break: break-all;">';
128: echo '<div style="padding-top:6px;width:100%; min-height:30px; background:#f77878; margin:10px 0px;text-align:center;">';
129: echo "OOP's we crashed onto something !";
130: echo '</div></div>';
131: error_log(json_encode($errDetails));
132: }
133: die;
134: return true;
135: }
136: header("X-Powered-By: SpeedyPF");
137: require(__DIR__ . "/../Core/Bridge.php");
138: new Bridge();
139: $requestUri = parse_url($_SERVER['REQUEST_URI']);
140: $requestMethod = $_SERVER['REQUEST_METHOD'];
141: $rawData = file_get_contents('php://input');
142: $requestData = $_REQUEST;
143: if($requestUri['path']!="/")
144: {
145: $requestUri['path']=rtrim($requestUri['path'],"/");
146: }
147: Bridge::Pass($requestUri['path'], $requestMethod, $requestData, $rawData);