From fcc3dd996da198a8c659a5bb8bc02b27fa8f0885 Mon Sep 17 00:00:00 2001 From: Jakub Senko Date: Mon, 18 Jun 2018 20:35:01 +0200 Subject: [PATCH] [ticket/12624] Add debug.load_time parameter PHPBB3-12624 --- phpBB/common.php | 2 ++ phpBB/config/development/config.yml | 1 + phpBB/includes/functions.php | 4 +++- phpBB/phpbb/db/driver/driver.php | 13 +++++++++++++ phpBB/phpbb/db/driver/driver_interface.php | 7 +++++++ phpBB/phpbb/db/driver/factory.php | 8 ++++++++ phpBB/phpbb/db/driver/mssql_odbc.php | 4 ++-- phpBB/phpbb/db/driver/mssqlnative.php | 4 ++-- phpBB/phpbb/db/driver/mysql.php | 4 ++-- phpBB/phpbb/db/driver/mysqli.php | 4 ++-- phpBB/phpbb/db/driver/oracle.php | 4 ++-- phpBB/phpbb/db/driver/postgres.php | 4 ++-- phpBB/phpbb/db/driver/sqlite3.php | 4 ++-- .../phpbb/di/extension/container_configuration.php | 1 + .../install_filesystem/task/create_config_file.php | 1 - tests/mock/container_builder.php | 5 +++++ vagrant/after.sh | 3 --- 17 files changed, 54 insertions(+), 19 deletions(-) diff --git a/phpBB/common.php b/phpBB/common.php index 7ace4cf12a..dc56fd70fa 100644 --- a/phpBB/common.php +++ b/phpBB/common.php @@ -131,6 +131,8 @@ catch (InvalidArgumentException $e) $phpbb_class_loader->set_cache($phpbb_container->get('cache.driver')); $phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver')); +$phpbb_container->get('dbal.conn')->set_debug_load_time($phpbb_container->getParameter('debug.load_time')); + require($phpbb_root_path . 'includes/compatibility_globals.' . $phpEx); register_compatibility_globals(); diff --git a/phpBB/config/development/config.yml b/phpBB/config/development/config.yml index 1e144d68d6..84873d61a8 100644 --- a/phpBB/config/development/config.yml +++ b/phpBB/config/development/config.yml @@ -6,6 +6,7 @@ core: debug: exceptions: true + load_time: true twig: debug: true diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 04f0203f80..e133ce6096 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -4532,10 +4532,12 @@ function phpbb_check_and_display_sql_report(\phpbb\request\request_interface $re */ function phpbb_generate_debug_output(\phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\auth\auth $auth, \phpbb\user $user, \phpbb\event\dispatcher_interface $phpbb_dispatcher) { + global $phpbb_container; + $debug_info = array(); // Output page creation time - if (defined('PHPBB_DISPLAY_LOAD_TIME')) + if ($phpbb_container->getParameter('debug.load_time')) { if (isset($GLOBALS['starttime'])) { diff --git a/phpBB/phpbb/db/driver/driver.php b/phpBB/phpbb/db/driver/driver.php index a36ce8c0d7..6fd8995dbe 100644 --- a/phpBB/phpbb/db/driver/driver.php +++ b/phpBB/phpbb/db/driver/driver.php @@ -75,6 +75,11 @@ abstract class driver implements driver_interface const SUBQUERY_SELECT_TYPE = 4; const SUBQUERY_BUILD = 5; + /** + * @var bool + */ + protected $debug_load_time = false; + /** * Constructor */ @@ -95,6 +100,14 @@ abstract class driver implements driver_interface $this->one_char = chr(0) . '_'; } + /** + * {@inheritdoc} + */ + public function set_debug_load_time($value) + { + $this->debug_load_time = $value; + } + /** * {@inheritdoc} */ diff --git a/phpBB/phpbb/db/driver/driver_interface.php b/phpBB/phpbb/db/driver/driver_interface.php index 8b487c5d42..ed4a87a259 100644 --- a/phpBB/phpbb/db/driver/driver_interface.php +++ b/phpBB/phpbb/db/driver/driver_interface.php @@ -15,6 +15,13 @@ namespace phpbb\db\driver; interface driver_interface { + /** + * Set value for load_time debug parameter + * + * @param bool $value + */ + public function set_debug_load_time($value); + /** * Gets the name of the sql layer. * diff --git a/phpBB/phpbb/db/driver/factory.php b/phpBB/phpbb/db/driver/factory.php index fb3a826254..2c7953e9c9 100644 --- a/phpBB/phpbb/db/driver/factory.php +++ b/phpBB/phpbb/db/driver/factory.php @@ -65,6 +65,14 @@ class factory implements driver_interface $this->driver = $driver; } + /** + * {@inheritdoc} + */ + public function set_debug_load_time($value) + { + $this->get_driver()->set_debug_load_time($value); + } + /** * {@inheritdoc} */ diff --git a/phpBB/phpbb/db/driver/mssql_odbc.php b/phpBB/phpbb/db/driver/mssql_odbc.php index 9d9ad603e0..f6fd80fd91 100644 --- a/phpBB/phpbb/db/driver/mssql_odbc.php +++ b/phpBB/phpbb/db/driver/mssql_odbc.php @@ -156,7 +156,7 @@ class mssql_odbc extends \phpbb\db\driver\mssql_base { $this->sql_report('start', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->curtime = microtime(true); } @@ -176,7 +176,7 @@ class mssql_odbc extends \phpbb\db\driver\mssql_base { $this->sql_report('stop', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->sql_time += microtime(true) - $this->curtime; } diff --git a/phpBB/phpbb/db/driver/mssqlnative.php b/phpBB/phpbb/db/driver/mssqlnative.php index de81a6a0c8..a4f533a97b 100644 --- a/phpBB/phpbb/db/driver/mssqlnative.php +++ b/phpBB/phpbb/db/driver/mssqlnative.php @@ -128,7 +128,7 @@ class mssqlnative extends \phpbb\db\driver\mssql_base { $this->sql_report('start', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->curtime = microtime(true); } @@ -150,7 +150,7 @@ class mssqlnative extends \phpbb\db\driver\mssql_base { $this->sql_report('stop', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->sql_time += microtime(true) - $this->curtime; } diff --git a/phpBB/phpbb/db/driver/mysql.php b/phpBB/phpbb/db/driver/mysql.php index 5eabe0f9ef..9616b520fe 100644 --- a/phpBB/phpbb/db/driver/mysql.php +++ b/phpBB/phpbb/db/driver/mysql.php @@ -176,7 +176,7 @@ class mysql extends \phpbb\db\driver\mysql_base { $this->sql_report('start', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->curtime = microtime(true); } @@ -195,7 +195,7 @@ class mysql extends \phpbb\db\driver\mysql_base { $this->sql_report('stop', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->sql_time += microtime(true) - $this->curtime; } diff --git a/phpBB/phpbb/db/driver/mysqli.php b/phpBB/phpbb/db/driver/mysqli.php index 57962fdf20..f46cbb151b 100644 --- a/phpBB/phpbb/db/driver/mysqli.php +++ b/phpBB/phpbb/db/driver/mysqli.php @@ -178,7 +178,7 @@ class mysqli extends \phpbb\db\driver\mysql_base { $this->sql_report('start', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->curtime = microtime(true); } @@ -197,7 +197,7 @@ class mysqli extends \phpbb\db\driver\mysql_base { $this->sql_report('stop', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->sql_time += microtime(true) - $this->curtime; } diff --git a/phpBB/phpbb/db/driver/oracle.php b/phpBB/phpbb/db/driver/oracle.php index 5fd14709f8..dbd1b3b384 100644 --- a/phpBB/phpbb/db/driver/oracle.php +++ b/phpBB/phpbb/db/driver/oracle.php @@ -251,7 +251,7 @@ class oracle extends \phpbb\db\driver\driver { $this->sql_report('start', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->curtime = microtime(true); } @@ -432,7 +432,7 @@ class oracle extends \phpbb\db\driver\driver { $this->sql_report('stop', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->sql_time += microtime(true) - $this->curtime; } diff --git a/phpBB/phpbb/db/driver/postgres.php b/phpBB/phpbb/db/driver/postgres.php index 44476612c3..bed28fe814 100644 --- a/phpBB/phpbb/db/driver/postgres.php +++ b/phpBB/phpbb/db/driver/postgres.php @@ -178,7 +178,7 @@ class postgres extends \phpbb\db\driver\driver { $this->sql_report('start', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->curtime = microtime(true); } @@ -198,7 +198,7 @@ class postgres extends \phpbb\db\driver\driver { $this->sql_report('stop', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->sql_time += microtime(true) - $this->curtime; } diff --git a/phpBB/phpbb/db/driver/sqlite3.php b/phpBB/phpbb/db/driver/sqlite3.php index 0508500c52..748302ce3b 100644 --- a/phpBB/phpbb/db/driver/sqlite3.php +++ b/phpBB/phpbb/db/driver/sqlite3.php @@ -123,7 +123,7 @@ class sqlite3 extends \phpbb\db\driver\driver { $this->sql_report('start', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->curtime = microtime(true); } @@ -160,7 +160,7 @@ class sqlite3 extends \phpbb\db\driver\driver { $this->sql_report('stop', $query); } - else if (defined('PHPBB_DISPLAY_LOAD_TIME')) + else if ($this->debug_load_time) { $this->sql_time += microtime(true) - $this->curtime; } diff --git a/phpBB/phpbb/di/extension/container_configuration.php b/phpBB/phpbb/di/extension/container_configuration.php index 3870670ac0..977f921418 100644 --- a/phpBB/phpbb/di/extension/container_configuration.php +++ b/phpBB/phpbb/di/extension/container_configuration.php @@ -35,6 +35,7 @@ class container_configuration implements ConfigurationInterface ->addDefaultsIfNotSet() ->children() ->booleanNode('exceptions')->defaultValue(false)->end() + ->booleanNode('load_time')->defaultValue(false)->end() ->end() ->end() ->arrayNode('twig') diff --git a/phpBB/phpbb/install/module/install_filesystem/task/create_config_file.php b/phpBB/phpbb/install/module/install_filesystem/task/create_config_file.php index 5bc425b929..47537ba549 100644 --- a/phpBB/phpbb/install/module/install_filesystem/task/create_config_file.php +++ b/phpBB/phpbb/install/module/install_filesystem/task/create_config_file.php @@ -191,7 +191,6 @@ class create_config_file extends \phpbb\install\task_base } $config_content .= "\n@define('PHPBB_INSTALLED', true);\n"; - $config_content .= "// @define('PHPBB_DISPLAY_LOAD_TIME', true);\n"; if ($environment) { diff --git a/tests/mock/container_builder.php b/tests/mock/container_builder.php index edf0d58a28..05083c3a3c 100644 --- a/tests/mock/container_builder.php +++ b/tests/mock/container_builder.php @@ -18,6 +18,11 @@ class phpbb_mock_container_builder implements ContainerInterface protected $services = array(); protected $parameters = array(); + public function __construct() + { + $this->setParameter('debug.load_time', false); + } + /** * Sets a service. * diff --git a/vagrant/after.sh b/vagrant/after.sh index 03008a88d0..3b56777a4e 100755 --- a/vagrant/after.sh +++ b/vagrant/after.sh @@ -37,9 +37,6 @@ echo "@define('DEBUG', true);" >> ${PHPBB_CONFIG} # Change environment to development sed -i '/^.*PHPBB_ENVIRONMENT.*$/s/production/development/' ${PHPBB_CONFIG} -# Display load time -sed -i '/^.*PHPBB_DISPLAY_LOAD_TIME.*$/s/^\/\/[[:blank:]]*//' ${PHPBB_CONFIG} - # Update the PHP memory limits (enough to allow phpunit tests to run) sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.1/fpm/php.ini