From ef9b51e631affd0d0c1d6f763c2d6c4d4d9675e5 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Mon, 18 May 2020 01:21:58 -0400 Subject: [PATCH] Replace direct error output and exit by logger + exception in Core\Renderer - Same in Render\FriendicaSmartyEngine --- src/Core/Renderer.php | 22 +++++++++++++--------- src/Render/FriendicaSmartyEngine.php | 5 +++-- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/Core/Renderer.php b/src/Core/Renderer.php index 4dab3184c7..d0c970b9fb 100644 --- a/src/Core/Renderer.php +++ b/src/Core/Renderer.php @@ -23,6 +23,7 @@ namespace Friendica\Core; use Exception; use Friendica\DI; +use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Render\TemplateEngine; /** @@ -70,6 +71,7 @@ class Renderer * @param string $template * @param array $vars * @return string + * @throws InternalServerErrorException */ public static function replaceMacros(string $template, array $vars) { @@ -83,8 +85,8 @@ class Renderer try { $output = $t->replaceMacros($template, $vars); } catch (Exception $e) { - echo "
" . __FUNCTION__ . ": " . $e->getMessage() . "
"; - exit(); + DI::logger()->critical($e->getMessage(), ['template' => $template, 'vars' => $vars]); + throw new InternalServerErrorException(DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator or check the Friendica log for errors.')); } DI::profiler()->saveTimestamp($stamp1, "rendering", System::callstack()); @@ -99,7 +101,7 @@ class Renderer * @param string $subDir Subdirectory (Optional) * * @return string template. - * @throws Exception + * @throws InternalServerErrorException */ public static function getMarkupTemplate($file, $subDir = '') { @@ -109,8 +111,8 @@ class Renderer try { $template = $t->getTemplateFile($file, $subDir); } catch (Exception $e) { - echo "
" . __FUNCTION__ . ": " . $e->getMessage() . "
"; - exit(); + DI::logger()->critical($e->getMessage(), ['file' => $file, 'subDir' => $subDir]); + throw new InternalServerErrorException(DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator or check the Friendica log for errors.')); } DI::profiler()->saveTimestamp($stamp1, "file", System::callstack()); @@ -122,6 +124,7 @@ class Renderer * Register template engine class * * @param string $class + * @throws InternalServerErrorException */ public static function registerTemplateEngine($class) { @@ -131,8 +134,8 @@ class Renderer $name = $v['name']; self::$template_engines[$name] = $class; } else { - echo "template engine $class cannot be registered without a name.\n"; - die(); + DI::logger()->critical(DI::l10n()->t('template engine cannot be registered without a name.'), ['class' => $class]); + throw new InternalServerErrorException(DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator or check the Friendica log for errors.')); } } @@ -143,6 +146,7 @@ class Renderer * or default * * @return TemplateEngine Template Engine instance + * @throws InternalServerErrorException */ public static function getTemplateEngine() { @@ -160,8 +164,8 @@ class Renderer } } - echo "template engine $template_engine is not registered!\n"; - exit(); + DI::logger()->critical(DI::l10n()->t('template engine is not registered!'), ['template_engine' => $template_engine]); + throw new InternalServerErrorException(DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator or check the Friendica log for errors.')); } /** diff --git a/src/Render/FriendicaSmartyEngine.php b/src/Render/FriendicaSmartyEngine.php index 6884364c26..9b3739d987 100644 --- a/src/Render/FriendicaSmartyEngine.php +++ b/src/Render/FriendicaSmartyEngine.php @@ -23,6 +23,7 @@ namespace Friendica\Render; use Friendica\Core\Hook; use Friendica\DI; +use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Util\Strings; /** @@ -48,8 +49,8 @@ final class FriendicaSmartyEngine extends TemplateEngine $this->smarty = new FriendicaSmarty($this->theme, $this->theme_info); if (!is_writable(DI::basePath() . '/view/smarty3')) { - echo "ERROR: folder view/smarty3/ must be writable by webserver."; - exit(); + DI::logger()->critical(DI::l10n()->t('The folder view/smarty3/ must be writable by webserver.')); + throw new InternalServerErrorException(DI::l10n()->t('Friendica can\'t display this page at the moment, please contact the administrator or check the Friendica log for errors.')); } }