From c48d66b5197d7d15d132ceb7ae61b61582e3a82b Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Tue, 3 Jul 2018 15:39:29 +0200 Subject: [PATCH] Miglioramento gestione debug --- core.php | 4 ++-- include/bottom.php | 8 +++---- include/init/update.php | 2 +- include/top.php | 36 ++++++++++++++--------------- src/App.php | 51 ++++++++++++++++++++++++++++++++--------- src/Database.php | 2 +- 6 files changed, 64 insertions(+), 39 deletions(-) diff --git a/core.php b/core.php index 07f7aa679..37018de2b 100644 --- a/core.php +++ b/core.php @@ -38,8 +38,8 @@ if (!empty($redirectHTTPS) && !isHTTPS(true)) { exit(); } -// Forzamento del debug -// $debug = true; +// Forza l'abilitazione del debug +// $debug = App::debug(true); // Logger per la segnalazione degli errori $logger = new Monolog\Logger('Logs'); diff --git a/include/bottom.php b/include/bottom.php index 88fb112a2..31ef3dd56 100644 --- a/include/bottom.php +++ b/include/bottom.php @@ -28,12 +28,14 @@ if (Auth::check()) { '; } - if (!empty($debug)) { + if (App::debug()) { echo ' '; + + echo $debugbarRenderer->render(); } $custom_css = get_var('CSS Personalizzato'); @@ -42,10 +44,6 @@ if (Auth::check()) { '; } - if (!empty($debugbarRenderer)) { - echo $debugbarRenderer->render(); - } - // Rimozione del messaggio automatico riguardante la modifica di valori nella pagina echo ' '; if (Auth::check()) { - if (!empty($debugbarRenderer)) { + // Barra di debug + if (App::debug()) { + $debugbar = new DebugBar\DebugBar(); + + $debugbar->addCollector(new DebugBar\DataCollector\MemoryCollector()); + $debugbar->addCollector(new DebugBar\DataCollector\PhpInfoCollector()); + + $debugbar->addCollector(new DebugBar\DataCollector\RequestDataCollector()); + $debugbar->addCollector(new DebugBar\DataCollector\TimeDataCollector()); + + $debugbar->addCollector(new DebugBar\Bridge\MonologCollector($logger)); + $debugbar->addCollector(new DebugBar\DataCollector\PDO\PDOCollector($dbo->getPDO())); + + $debugbarRenderer = $debugbar->getJavascriptRenderer(); + $debugbarRenderer->setIncludeVendors(false); + $debugbarRenderer->setBaseUrl($paths['assets'].'/php-debugbar'); + echo $debugbarRenderer->renderHead(); } diff --git a/src/App.php b/src/App.php index 78da17dec..4ee522685 100644 --- a/src/App.php +++ b/src/App.php @@ -12,6 +12,9 @@ class App /** @var int Identificativo dell'elemento corrente */ protected static $current_element; + /** @var bool Stato di debug */ + protected static $config = []; + /** @var array Elenco degli assets del progetto */ protected static $assets = [ // CSS @@ -78,6 +81,12 @@ class App include DOCROOT.'/config.example.php'; } + $db_host = ''; + $db_username = ''; + $db_password = ''; + $db_name = ''; + $port = ''; + return get_defined_vars(); } @@ -88,22 +97,42 @@ class App */ public static function getConfig() { - if (file_exists(DOCROOT.'/config.inc.php')) { - include DOCROOT.'/config.inc.php'; + if (empty(self::$config['db_host'])) { + if (file_exists(DOCROOT.'/config.inc.php')) { + include DOCROOT.'/config.inc.php'; - $config = get_defined_vars(); - } else { - $config = []; + $config = get_defined_vars(); + } else { + $config = []; + } + + $defaultConfig = self::getDefaultConfig(); + + $result = array_merge($defaultConfig, $config); + + // Operazioni di normalizzazione sulla configurazione + $result['debug'] = isset(self::$config['debug']) ? self::$config['debug'] : !empty($result['debug']); + + self::$config = $result; } - $defaultConfig = self::getDefaultConfig(); + return self::$config; + } - $result = array_merge($defaultConfig, $config); + /** + * Imposta e restituisce lo stato di debug del progetto. + * + * @param bool $value + * + * @return bool + */ + public static function debug($value = null) + { + if (is_bool($value)) { + self::$config['debug'] = $value; + } - // Operazioni di normalizzazione sulla configurazione - $result['debug'] = !empty($result['debug']); - - return $result; + return self::$config['debug']; } /** diff --git a/src/Database.php b/src/Database.php index 82c669c24..2a0527a1f 100644 --- a/src/Database.php +++ b/src/Database.php @@ -145,7 +145,7 @@ class Database extends Util\Singleton * * @since 2.3 * - * @return \DebugBar\DataCollector\PDO\TraceablePDO + * @return \DebugBar\DataCollector\PDO\TraceablePDO|PDO */ public function getPDO() {