2016-10-19 16:54:41 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
|
|
|
|
|
|
/** @var \Composer\Autoload\ClassLoader $loader */
|
|
|
|
$loader = require __DIR__.'/../app/autoload.php';
|
|
|
|
include_once __DIR__.'/../var/bootstrap.php.cache';
|
|
|
|
|
2017-01-09 22:15:02 +01:00
|
|
|
$env = require 'env.php';
|
|
|
|
|
|
|
|
$kernel = new AppKernel($env, false);
|
2016-10-19 16:54:41 +01:00
|
|
|
$kernel->loadClassCache();
|
|
|
|
//$kernel = new AppCache($kernel);
|
|
|
|
|
|
|
|
// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
|
|
|
|
//Request::enableHttpMethodParameterOverride();
|
2017-05-06 15:35:38 +01:00
|
|
|
|
2017-06-08 23:24:40 +01:00
|
|
|
|
2017-05-06 15:35:38 +01:00
|
|
|
try {
|
|
|
|
$request = Request::createFromGlobals();
|
|
|
|
$response = $kernel->handle($request);
|
|
|
|
$response->send();
|
|
|
|
$kernel->terminate($request, $response);
|
|
|
|
} catch(\Exception $e) {
|
2017-05-07 22:02:17 +01:00
|
|
|
// Separate exception handling for anything that could not be caught in ApiController, for
|
|
|
|
// example if the route doesn't exist.
|
|
|
|
$class = get_class($e);
|
|
|
|
$errorType = explode("\\", $class);
|
|
|
|
$errorType = $errorType[count($errorType) - 1];
|
|
|
|
$response = array(
|
|
|
|
'error' => $e->getMessage(),
|
|
|
|
'code' => $e->getCode(),
|
|
|
|
'type' => $errorType,
|
2017-06-11 22:11:14 +01:00
|
|
|
'trace' => $e->getTraceAsString(),
|
2017-05-07 22:02:17 +01:00
|
|
|
);
|
|
|
|
if ($errorType == 'NotFoundHttpException') {
|
|
|
|
header('HTTP/1.1 404 Not found');
|
|
|
|
} else {
|
|
|
|
header('HTTP/1.1 500 Internal Server Error');
|
|
|
|
}
|
|
|
|
|
2017-05-19 19:32:49 +00:00
|
|
|
$r = json_encode($response);
|
|
|
|
if ($r === false) $r = serialize($response);
|
|
|
|
die($r . "\n");
|
2017-05-06 15:35:38 +01:00
|
|
|
}
|