From 5f62a59d2f3d9cc9712849726f1999b1ea017679 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 21 Aug 2022 07:44:12 -0400 Subject: [PATCH] Ensure Util\Profiler->rendertime is bool - Address https://github.com/friendica/friendica/issues/11630#issuecomment-1221228589 - Address https://github.com/friendica/friendica/issues/11630#issuecomment-1221244898 - Address https://github.com/friendica/friendica/issues/11630#issuecomment-1221333918 --- src/Util/Profiler.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Util/Profiler.php b/src/Util/Profiler.php index 23eb1d8c33..f4e4850487 100644 --- a/src/Util/Profiler.php +++ b/src/Util/Profiler.php @@ -69,21 +69,27 @@ class Profiler implements ContainerInterface /** * Updates the enabling of the current profiler * + * Note: The reason there are two different ways of updating the configuration of this class is because it can + * be used even with no available database connection which IManageConfigValues doesn't ensure. + * * @param IManageConfigValues $config */ public function update(IManageConfigValues $config) { - $this->enabled = $config->get('system', 'profiler'); - $this->rendertime = $config->get('rendertime', 'callstack'); + $this->enabled = (bool) $config->get('system', 'profiler') ?? false; + $this->rendertime = (bool) $config->get('rendertime', 'callstack') ?? false; } /** + * Note: The reason we are using a Config Cache object to initialize this class is to ensure it'll work even with no + * available database connection. + * * @param \Friendica\Core\Config\ValueObject\Cache $configCache The configuration cache */ public function __construct(Cache $configCache) { - $this->enabled = $configCache->get('system', 'profiler'); - $this->rendertime = $configCache->get('rendertime', 'callstack'); + $this->enabled = (bool) $configCache->get('system', 'profiler') ?? false; + $this->rendertime = (bool) $configCache->get('rendertime', 'callstack') ?? false; $this->reset(); }