|
|
@ -16,13 +16,13 @@ class App {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* renders (prints out) given HttpResponse to the client
|
|
|
|
* renders (prints out) given HttpResponse to the client
|
|
|
|
* @param HttpResponse $response
|
|
|
|
* @param HttpResponse $response
|
|
|
|
* @param string $twigViewsFolder
|
|
|
|
* @param callable(): Environment $twigSupplier
|
|
|
|
* @return void
|
|
|
|
* @return void
|
|
|
|
* @throws LoaderError
|
|
|
|
* @throws LoaderError
|
|
|
|
* @throws RuntimeError
|
|
|
|
* @throws RuntimeError
|
|
|
|
* @throws SyntaxError
|
|
|
|
* @throws SyntaxError
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public static function render(HttpResponse $response, string $twigViewsFolder): void {
|
|
|
|
public static function render(HttpResponse $response, callable $twigSupplier): void {
|
|
|
|
http_response_code($response->getCode());
|
|
|
|
http_response_code($response->getCode());
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($response->getHeaders() as $header => $value) {
|
|
|
|
foreach ($response->getHeaders() as $header => $value) {
|
|
|
@ -30,7 +30,7 @@ class App {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($response instanceof ViewHttpResponse) {
|
|
|
|
if ($response instanceof ViewHttpResponse) {
|
|
|
|
self::renderView($response, $twigViewsFolder);
|
|
|
|
self::renderView($response, $twigSupplier);
|
|
|
|
} elseif ($response instanceof JsonHttpResponse) {
|
|
|
|
} elseif ($response instanceof JsonHttpResponse) {
|
|
|
|
header('Content-type: application/json');
|
|
|
|
header('Content-type: application/json');
|
|
|
|
echo $response->getJson();
|
|
|
|
echo $response->getJson();
|
|
|
@ -40,13 +40,13 @@ class App {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* renders (prints out) given ViewHttpResponse to the client
|
|
|
|
* renders (prints out) given ViewHttpResponse to the client
|
|
|
|
* @param ViewHttpResponse $response
|
|
|
|
* @param ViewHttpResponse $response
|
|
|
|
* @param string $twigViewsFolder
|
|
|
|
* @param callable(): Environment $twigSupplier
|
|
|
|
* @return void
|
|
|
|
* @return void
|
|
|
|
* @throws LoaderError
|
|
|
|
* @throws LoaderError
|
|
|
|
* @throws RuntimeError
|
|
|
|
* @throws RuntimeError
|
|
|
|
* @throws SyntaxError
|
|
|
|
* @throws SyntaxError
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private static function renderView(ViewHttpResponse $response, string $twigViewsFolder): void {
|
|
|
|
private static function renderView(ViewHttpResponse $response, callable $twigSupplier): void {
|
|
|
|
$file = $response->getFile();
|
|
|
|
$file = $response->getFile();
|
|
|
|
$args = $response->getArguments();
|
|
|
|
$args = $response->getArguments();
|
|
|
|
|
|
|
|
|
|
|
@ -56,10 +56,9 @@ class App {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case ViewHttpResponse::TWIG_VIEW:
|
|
|
|
case ViewHttpResponse::TWIG_VIEW:
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
$fl = new FilesystemLoader($twigViewsFolder);
|
|
|
|
$twig = call_user_func($twigSupplier);
|
|
|
|
$twig = new Environment($fl);
|
|
|
|
|
|
|
|
$twig->display($file, $args);
|
|
|
|
$twig->display($file, $args);
|
|
|
|
} catch (RuntimeError | SyntaxError | LoaderError $e) {
|
|
|
|
} catch (RuntimeError|SyntaxError|LoaderError $e) {
|
|
|
|
http_response_code(500);
|
|
|
|
http_response_code(500);
|
|
|
|
echo "There was an error rendering your view, please refer to an administrator.\nlogs date: " . date("YYYD, d M Y H:i:s");
|
|
|
|
echo "There was an error rendering your view, please refer to an administrator.\nlogs date: " . date("YYYD, d M Y H:i:s");
|
|
|
|
throw $e;
|
|
|
|
throw $e;
|
|
|
|