diff options
Diffstat (limited to 'src/Server/RequestHandlers/PhpServer.php')
| -rw-r--r-- | src/Server/RequestHandlers/PhpServer.php | 20 | 
1 files changed, 8 insertions, 12 deletions
| diff --git a/src/Server/RequestHandlers/PhpServer.php b/src/Server/RequestHandlers/PhpServer.php index 5447f72..c3ded4d 100644 --- a/src/Server/RequestHandlers/PhpServer.php +++ b/src/Server/RequestHandlers/PhpServer.php @@ -19,23 +19,19 @@ class PhpServer extends DocumentServer      }      if (is_file($documentPath) && str_ends_with($documentPath, '.php')) { -      ob_start();        try { +        ob_start();          include $documentPath; -      } catch (\Throwable $exception) { -        echo <<<EXCEPTION - -        ``` -        $exception -        ``` +        $content = ob_get_clean(); -        EXCEPTION; +        $response->setStatusCode(Status::SUCCESS); +        $response->setBody($content); +        $response->setMeta('text/gemini; charset=utf-8'); +      } catch (\Throwable $exception) { +        $response->setStatusCode(Status::PERMANENT_FAILURE); +        $response->setMeta($exception);        } -      $content = ob_get_clean(); -      $response->setBody($content); -      $response->setStatusCode(Status::SUCCESS); -      $response->setMeta('text/gemini; charset=utf-8');      } else {        return parent::__invoke($response, $request);      } | 
