mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-21 05:43:55 -07:00
Refactored Dev class (#649)
This commit is contained in:
parent
5f0649073f
commit
bcf9465dc0
16 changed files with 218 additions and 161 deletions
69
common.php
69
common.php
|
@ -52,6 +52,12 @@ if (!file_exists(__DIR__ . '/vendor/autoload.php')) {
|
|||
}
|
||||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
|
||||
/**
|
||||
* Progressive error reporting
|
||||
*/
|
||||
define('DBG_USER', (isset($_COOKIE[COOKIE_DBG])));
|
||||
\TorrentPier\Dev::debug_init();
|
||||
|
||||
/**
|
||||
* Gets the value of an environment variable.
|
||||
*
|
||||
|
@ -80,9 +86,6 @@ define('FORUM_PATH', $bb_cfg['script_path']);
|
|||
define('FULL_URL', $server_protocol . $bb_cfg['server_name'] . $server_port . $bb_cfg['script_path']);
|
||||
unset($server_protocol, $server_port);
|
||||
|
||||
// Debug options
|
||||
define('DBG_USER', (isset($_COOKIE[COOKIE_DBG])));
|
||||
|
||||
// Board / tracker shared constants and functions
|
||||
define('BB_BT_TORRENTS', 'bb_bt_torrents');
|
||||
define('BB_BT_TRACKER', 'bb_bt_tracker');
|
||||
|
@ -108,47 +111,6 @@ define('TOR_TYPE_SILVER', 2);
|
|||
define('GUEST_UID', -1);
|
||||
define('BOT_UID', -746);
|
||||
|
||||
/**
|
||||
* Progressive error reporting
|
||||
*/
|
||||
if ($bb_cfg['bugsnag']['enabled']) {
|
||||
if (env('APP_ENV', 'production') !== 'local') {
|
||||
/** @var Bugsnag\Handler $bugsnag */
|
||||
$bugsnag = Bugsnag\Client::make($bb_cfg['bugsnag']['api_key']);
|
||||
Bugsnag\Handler::register($bugsnag);
|
||||
}
|
||||
} else {
|
||||
if (DBG_USER) {
|
||||
/** @var Whoops\Run $whoops */
|
||||
$whoops = new \Whoops\Run;
|
||||
|
||||
/**
|
||||
* Show errors on page
|
||||
*/
|
||||
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
|
||||
|
||||
/**
|
||||
* Show log in browser console
|
||||
*/
|
||||
$loggingInConsole = new \Whoops\Handler\PlainTextHandler();
|
||||
$loggingInConsole->loggerOnly(true);
|
||||
$loggingInConsole->setLogger((new \Monolog\Logger(getenv('APP_NAME', 'TorrentPier'), [(new \Monolog\Handler\BrowserConsoleHandler())->setFormatter((new \Monolog\Formatter\LineFormatter(null, null, true)))])));
|
||||
$whoops->pushHandler($loggingInConsole);
|
||||
|
||||
/**
|
||||
* Log errors in file
|
||||
*/
|
||||
if (ini_get('log_errors') == 1) {
|
||||
$loggingInFile = new \Whoops\Handler\PlainTextHandler();
|
||||
$loggingInFile->loggerOnly(true);
|
||||
$loggingInFile->setLogger((new \Monolog\Logger(getenv('APP_NAME', 'TorrentPier'), [(new \Monolog\Handler\StreamHandler(bb_log('', WHOOPS_LOG_FILE, true)))->setFormatter((new \Monolog\Formatter\LineFormatter(null, null, true)))])));
|
||||
$whoops->pushHandler($loggingInFile);
|
||||
}
|
||||
|
||||
$whoops->register();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Database
|
||||
*/
|
||||
|
@ -217,25 +179,6 @@ if (CHECK_REQIREMENTS['status'] && !CACHE('bb_cache')->get('system_req')) {
|
|||
CACHE('bb_cache')->set('system_req', true);
|
||||
}
|
||||
|
||||
function sql_dbg_enabled()
|
||||
{
|
||||
return (SQL_DEBUG && DBG_USER && !empty($_COOKIE['sql_log']));
|
||||
}
|
||||
|
||||
function short_query($sql, $esc_html = false)
|
||||
{
|
||||
$max_len = 100;
|
||||
$sql = str_compact($sql);
|
||||
|
||||
if (!empty($_COOKIE['sql_log_full'])) {
|
||||
if (mb_strlen($sql, 'UTF-8') > $max_len) {
|
||||
$sql = mb_substr($sql, 0, 50) . ' [...cut...] ' . mb_substr($sql, -50);
|
||||
}
|
||||
}
|
||||
|
||||
return $esc_html ? htmlCHR($sql, true) : $sql;
|
||||
}
|
||||
|
||||
// Functions
|
||||
function utime()
|
||||
{
|
||||
|
|
|
@ -71,7 +71,7 @@ if (!empty($_COOKIE['explain'])) {
|
|||
}
|
||||
}
|
||||
|
||||
$sql_log = !empty($_COOKIE['sql_log']) ? \TorrentPier\Legacy\Dev::get_sql_log() : '';
|
||||
$sql_log = !empty($_COOKIE['sql_log']) ? \TorrentPier\Dev::get_sql_log() : '';
|
||||
|
||||
if ($sql_log) {
|
||||
echo '<div class="sqlLog" id="sqlLog">' . ($sql_log ?: '') . '</div><!-- / sqlLog --><br clear="all" />';
|
||||
|
|
177
src/Dev.php
Normal file
177
src/Dev.php
Normal file
|
@ -0,0 +1,177 @@
|
|||
<?php
|
||||
/**
|
||||
* TorrentPier – Bull-powered BitTorrent tracker engine
|
||||
*
|
||||
* @copyright Copyright (c) 2005-2023 TorrentPier (https://torrentpier.com)
|
||||
* @link https://github.com/torrentpier/torrentpier for the canonical source repository
|
||||
* @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License
|
||||
*/
|
||||
|
||||
namespace TorrentPier;
|
||||
|
||||
use Bugsnag\Client;
|
||||
use Bugsnag\Handler;
|
||||
|
||||
use Monolog\Formatter\LineFormatter;
|
||||
use Monolog\Handler\BrowserConsoleHandler;
|
||||
use Monolog\Handler\StreamHandler;
|
||||
use Monolog\Logger;
|
||||
|
||||
use Whoops\Handler\PlainTextHandler;
|
||||
use Whoops\Handler\PrettyPageHandler;
|
||||
use Whoops\Run;
|
||||
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Class Dev
|
||||
* @package TorrentPier
|
||||
*/
|
||||
class Dev
|
||||
{
|
||||
/**
|
||||
* Base debug functionality init
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function debug_init(): void
|
||||
{
|
||||
global $bb_cfg;
|
||||
|
||||
if ($bb_cfg['bugsnag']['enabled']) {
|
||||
if (env('APP_ENV', 'production') !== 'local') {
|
||||
$bugsnag = Client::make($bb_cfg['bugsnag']['api_key']);
|
||||
Handler::register($bugsnag);
|
||||
}
|
||||
} else {
|
||||
if (DBG_USER) {
|
||||
$whoops = new Run;
|
||||
|
||||
/**
|
||||
* Show errors on page
|
||||
*/
|
||||
$whoops->pushHandler(new PrettyPageHandler);
|
||||
|
||||
/**
|
||||
* Show log in browser console
|
||||
*/
|
||||
$loggingInConsole = new PlainTextHandler();
|
||||
$loggingInConsole->loggerOnly(true);
|
||||
$loggingInConsole->setLogger((new Logger(getenv('APP_NAME', 'TorrentPier'), [(new BrowserConsoleHandler())->setFormatter((new LineFormatter(null, null, true)))])));
|
||||
$whoops->pushHandler($loggingInConsole);
|
||||
|
||||
/**
|
||||
* Log errors in file
|
||||
*/
|
||||
if (ini_get('log_errors') == 1) {
|
||||
$loggingInFile = new PlainTextHandler();
|
||||
$loggingInFile->loggerOnly(true);
|
||||
$loggingInFile->setLogger((new Logger(getenv('APP_NAME', 'TorrentPier'), [(new StreamHandler(bb_log('', WHOOPS_LOG_FILE, true)))->setFormatter((new LineFormatter(null, null, true)))])));
|
||||
$whoops->pushHandler($loggingInFile);
|
||||
}
|
||||
|
||||
$whoops->register();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get SQL debug log
|
||||
*
|
||||
* @return string
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function get_sql_log(): string
|
||||
{
|
||||
global $DBS, $CACHES, $datastore;
|
||||
|
||||
$log = '';
|
||||
|
||||
foreach ($DBS->srv as $srv_name => $db_obj) {
|
||||
$log .= !empty($db_obj) ? self::get_sql_log_html($db_obj, "$srv_name [MySQL]") : '';
|
||||
}
|
||||
|
||||
foreach ($CACHES->obj as $cache_name => $cache_obj) {
|
||||
if (!empty($cache_obj->db)) {
|
||||
$log .= self::get_sql_log_html($cache_obj->db, "cache: $cache_name [{$cache_obj->db->engine}]");
|
||||
} elseif (!empty($cache_obj->engine)) {
|
||||
$log .= self::get_sql_log_html($cache_obj, "cache: $cache_name [{$cache_obj->engine}]");
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($datastore->db->dbg)) {
|
||||
$log .= self::get_sql_log_html($datastore->db, 'cache: datastore [' . $datastore->engine . ']');
|
||||
} elseif (!empty($datastore->dbg)) {
|
||||
$log .= self::get_sql_log_html($datastore, 'cache: datastore [' . $datastore->engine . ']');
|
||||
}
|
||||
|
||||
return $log;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sql debug status
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function sql_dbg_enabled(): bool
|
||||
{
|
||||
return (SQL_DEBUG && DBG_USER && !empty($_COOKIE['sql_log']));
|
||||
}
|
||||
|
||||
/**
|
||||
* Short query
|
||||
*
|
||||
* @param string $sql
|
||||
* @param bool $esc_html
|
||||
* @return string
|
||||
*/
|
||||
public static function short_query(string $sql, bool $esc_html = false): string
|
||||
{
|
||||
$max_len = 100;
|
||||
$sql = str_compact($sql);
|
||||
|
||||
if (!empty($_COOKIE['sql_log_full'])) {
|
||||
if (mb_strlen($sql, 'UTF-8') > $max_len) {
|
||||
$sql = mb_substr($sql, 0, 50) . ' [...cut...] ' . mb_substr($sql, -50);
|
||||
}
|
||||
}
|
||||
|
||||
return $esc_html ? htmlCHR($sql, true) : $sql;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get SQL query html log
|
||||
*
|
||||
* @param object $db_obj
|
||||
* @param string $log_name
|
||||
*
|
||||
* @return string
|
||||
* @throws Exception
|
||||
*/
|
||||
private static function get_sql_log_html(object $db_obj, string $log_name): string
|
||||
{
|
||||
$log = '';
|
||||
|
||||
foreach ($db_obj->dbg as $i => $dbg) {
|
||||
$id = "sql_{$i}_" . random_int(0, mt_getrandmax());
|
||||
$sql = self::short_query($dbg['sql'], true);
|
||||
$time = sprintf('%.4f', $dbg['time']);
|
||||
$perc = @sprintf('[%2d]', $dbg['time'] * 100 / $db_obj->sql_timetotal);
|
||||
$info = !empty($dbg['info']) ? $dbg['info'] . ' [' . $dbg['src'] . ']' : $dbg['src'];
|
||||
|
||||
$log .= ''
|
||||
. '<div onmouseout="$(this).removeClass(\'sqlHover\');" onmouseover="$(this).addClass(\'sqlHover\');" onclick="$(this).toggleClass(\'sqlHighlight\');" class="sqlLogRow" title="' . $info . '">'
|
||||
. '<span style="letter-spacing: -1px;">' . $time . ' </span>'
|
||||
. '<span class="copyElement" data-clipboard-target="#' . $id . '" title="Copy to clipboard" style="color: gray; letter-spacing: -1px;">' . $perc . '</span>'
|
||||
. ' '
|
||||
. '<span style="letter-spacing: 0;" id="' . $id . '">' . $sql . '</span>'
|
||||
. '<span style="color: gray"> # ' . $info . ' </span>'
|
||||
. '</div>'
|
||||
. "\n";
|
||||
}
|
||||
return '
|
||||
<div class="sqlLogTitle">' . $log_name . '</div>
|
||||
' . $log . '
|
||||
';
|
||||
}
|
||||
}
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class Ajax
|
||||
* @package TorrentPier\Legacy
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Cache;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class Common
|
||||
* @package TorrentPier\Legacy\Cache
|
||||
|
@ -67,7 +69,7 @@ class Common
|
|||
if ($mode == 'start') {
|
||||
$this->sql_starttime = utime();
|
||||
|
||||
$dbg['sql'] = isset($cur_query) ? short_query($cur_query) : short_query($this->cur_query);
|
||||
$dbg['sql'] = Dev::short_query($cur_query ?? $this->cur_query);
|
||||
$dbg['src'] = $this->debug_find_source();
|
||||
$dbg['file'] = $this->debug_find_source('file');
|
||||
$dbg['line'] = $this->debug_find_source('line');
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Cache;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class File
|
||||
* @package TorrentPier\Legacy\Cache
|
||||
|
@ -24,7 +26,7 @@ class File extends Common
|
|||
{
|
||||
$this->dir = $dir;
|
||||
$this->prefix = $prefix;
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
}
|
||||
|
||||
public function get($name, $get_miss_key_callback = '', $ttl = 0)
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Cache;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class Memcache
|
||||
* @package TorrentPier\Legacy\Cache
|
||||
|
@ -31,7 +33,7 @@ class Memcache extends Common
|
|||
$this->cfg = $cfg;
|
||||
$this->prefix = $prefix;
|
||||
$this->memcache = new \Memcache();
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
}
|
||||
|
||||
public function connect()
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Cache;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class Redis
|
||||
* @package TorrentPier\Legacy\Cache
|
||||
|
@ -31,7 +33,7 @@ class Redis extends Common
|
|||
$this->cfg = $cfg;
|
||||
$this->prefix = $prefix;
|
||||
$this->redis = new \Redis();
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
}
|
||||
|
||||
public function connect()
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
namespace TorrentPier\Legacy\Cache;
|
||||
|
||||
use SQLite3;
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class SqliteCommon
|
||||
|
@ -37,7 +38,7 @@ class SqliteCommon extends Common
|
|||
public function __construct($cfg)
|
||||
{
|
||||
$this->cfg = array_merge($this->cfg, $cfg);
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
}
|
||||
|
||||
public function connect()
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Datastore;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class Common
|
||||
* @package TorrentPier\Legacy\Datastore
|
||||
|
@ -142,7 +144,7 @@ class Common
|
|||
if ($mode == 'start') {
|
||||
$this->sql_starttime = utime();
|
||||
|
||||
$dbg['sql'] = isset($cur_query) ? short_query($cur_query) : short_query($this->cur_query);
|
||||
$dbg['sql'] = Dev::short_query($cur_query ?? $this->cur_query);
|
||||
$dbg['src'] = $this->debug_find_source();
|
||||
$dbg['file'] = $this->debug_find_source('file');
|
||||
$dbg['line'] = $this->debug_find_source('line');
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Datastore;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class File
|
||||
* @package TorrentPier\Legacy\Datastore
|
||||
|
@ -23,7 +25,7 @@ class File extends Common
|
|||
{
|
||||
$this->prefix = $prefix;
|
||||
$this->dir = $dir;
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
}
|
||||
|
||||
public function store($title, $var)
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Datastore;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class Memcache
|
||||
* @package TorrentPier\Legacy\Datastore
|
||||
|
@ -30,7 +32,7 @@ class Memcache extends Common
|
|||
$this->cfg = $cfg;
|
||||
$this->prefix = $prefix;
|
||||
$this->memcache = new \Memcache();
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
}
|
||||
|
||||
public function connect()
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
namespace TorrentPier\Legacy\Datastore;
|
||||
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class Redis
|
||||
* @package TorrentPier\Legacy\Datastore
|
||||
|
@ -29,7 +31,7 @@ class Redis extends Common
|
|||
|
||||
$this->cfg = $cfg;
|
||||
$this->redis = new \Redis();
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
$this->prefix = $prefix;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
namespace TorrentPier\Legacy\Datastore;
|
||||
|
||||
use SQLite3;
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class SqliteCommon
|
||||
|
@ -37,7 +38,7 @@ class SqliteCommon extends Common
|
|||
public function __construct($cfg)
|
||||
{
|
||||
$this->cfg = array_merge($this->cfg, $cfg);
|
||||
$this->dbg_enabled = sql_dbg_enabled();
|
||||
$this->dbg_enabled = Dev::sql_dbg_enabled();
|
||||
}
|
||||
|
||||
public function connect()
|
||||
|
|
|
@ -1,84 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* TorrentPier – Bull-powered BitTorrent tracker engine
|
||||
*
|
||||
* @copyright Copyright (c) 2005-2023 TorrentPier (https://torrentpier.com)
|
||||
* @link https://github.com/torrentpier/torrentpier for the canonical source repository
|
||||
* @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License
|
||||
*/
|
||||
|
||||
namespace TorrentPier\Legacy;
|
||||
|
||||
/**
|
||||
* Class Dev
|
||||
* @package TorrentPier\Legacy
|
||||
*/
|
||||
class Dev
|
||||
{
|
||||
/**
|
||||
* Get SQL debug log
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_sql_log()
|
||||
{
|
||||
global $DBS, $CACHES, $datastore;
|
||||
|
||||
$log = '';
|
||||
|
||||
foreach ($DBS->srv as $srv_name => $db_obj) {
|
||||
$log .= !empty($db_obj) ? self::get_sql_log_html($db_obj, "$srv_name [MySQL]") : '';
|
||||
}
|
||||
|
||||
foreach ($CACHES->obj as $cache_name => $cache_obj) {
|
||||
if (!empty($cache_obj->db)) {
|
||||
$log .= self::get_sql_log_html($cache_obj->db, "cache: $cache_name [{$cache_obj->db->engine}]");
|
||||
} elseif (!empty($cache_obj->engine)) {
|
||||
$log .= self::get_sql_log_html($cache_obj, "cache: $cache_name [{$cache_obj->engine}]");
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($datastore->db->dbg)) {
|
||||
$log .= self::get_sql_log_html($datastore->db, 'cache: datastore [' . $datastore->engine . ']');
|
||||
} elseif (!empty($datastore->dbg)) {
|
||||
$log .= self::get_sql_log_html($datastore, 'cache: datastore [' . $datastore->engine . ']');
|
||||
}
|
||||
|
||||
return $log;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get SQL query html log
|
||||
*
|
||||
* @param object $db_obj
|
||||
* @param string $log_name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function get_sql_log_html($db_obj, $log_name)
|
||||
{
|
||||
$log = '';
|
||||
|
||||
foreach ($db_obj->dbg as $i => $dbg) {
|
||||
$id = "sql_{$i}_" . random_int(0, mt_getrandmax());
|
||||
$sql = short_query($dbg['sql'], true);
|
||||
$time = sprintf('%.4f', $dbg['time']);
|
||||
$perc = @sprintf('[%2d]', $dbg['time'] * 100 / $db_obj->sql_timetotal);
|
||||
$info = !empty($dbg['info']) ? $dbg['info'] . ' [' . $dbg['src'] . ']' : $dbg['src'];
|
||||
|
||||
$log .= ''
|
||||
. '<div onmouseout="$(this).removeClass(\'sqlHover\');" onmouseover="$(this).addClass(\'sqlHover\');" onclick="$(this).toggleClass(\'sqlHighlight\');" class="sqlLogRow" title="' . $info . '">'
|
||||
. '<span style="letter-spacing: -1px;">' . $time . ' </span>'
|
||||
. '<span class="copyElement" data-clipboard-target="#' . $id . '" title="Copy to clipboard" style="color: gray; letter-spacing: -1px;">' . $perc . '</span>'
|
||||
. ' '
|
||||
. '<span style="letter-spacing: 0;" id="' . $id . '">' . $sql . '</span>'
|
||||
. '<span style="color: gray"> # ' . $info . ' </span>'
|
||||
. '</div>'
|
||||
. "\n";
|
||||
}
|
||||
return '
|
||||
<div class="sqlLogTitle">' . $log_name . '</div>
|
||||
' . $log . '
|
||||
';
|
||||
}
|
||||
}
|
|
@ -11,6 +11,7 @@ namespace TorrentPier\Legacy;
|
|||
|
||||
use mysqli_result;
|
||||
use TorrentPier\Common\Http;
|
||||
use TorrentPier\Dev;
|
||||
|
||||
/**
|
||||
* Class SqlDb
|
||||
|
@ -58,7 +59,7 @@ class SqlDb
|
|||
global $DBS;
|
||||
|
||||
$this->cfg = array_combine($this->cfg_keys, $cfg_values);
|
||||
$this->dbg_enabled = (sql_dbg_enabled() || !empty($_COOKIE['explain']));
|
||||
$this->dbg_enabled = (Dev::sql_dbg_enabled() || !empty($_COOKIE['explain']));
|
||||
$this->do_explain = ($this->dbg_enabled && !empty($_COOKIE['explain']));
|
||||
$this->slow_time = SQL_SLOW_QUERY_TIME;
|
||||
|
||||
|
@ -896,7 +897,7 @@ class SqlDb
|
|||
$msg[] = sprintf('%-4s', round(sys('la'), 1));
|
||||
$msg[] = sprintf('%05d', getmypid());
|
||||
$msg[] = $this->db_server;
|
||||
$msg[] = short_query($this->cur_query);
|
||||
$msg[] = Dev::short_query($this->cur_query);
|
||||
$msg = implode(LOG_SEPR, $msg);
|
||||
$msg .= ($info = $this->query_info()) ? ' # ' . $info : '';
|
||||
$msg .= ' # ' . $this->debug_find_source() . ' ';
|
||||
|
@ -1001,7 +1002,7 @@ class SqlDb
|
|||
</tr>
|
||||
<tr><td colspan="2">' . $this->explain_hold . '</td></tr>
|
||||
</table>
|
||||
<div class="sqlLog"><div id="' . $htid . '" class="sqlLogRow sqlExplain" style="padding: 0;">' . short_query($dbg['sql'], true) . ' </div></div>
|
||||
<div class="sqlLog"><div id="' . $htid . '" class="sqlLogRow sqlExplain" style="padding: 0;">' . Dev::short_query($dbg['sql'], true) . ' </div></div>
|
||||
<br />';
|
||||
break;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue