Server IP : 51.89.169.208 / Your IP : 3.15.10.50 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/yellowleaf/public_html/phpMyAdmin/libraries/classes/ |
Upload File : |
<?php declare(strict_types=1); namespace PhpMyAdmin; use PhpMyAdmin\Utils\SessionCache; /** * Statement resource usage. */ final class Profiling { public static function isSupported(DatabaseInterface $dbi): bool { if (SessionCache::has('profiling_supported')) { return (bool) SessionCache::get('profiling_supported'); } /** * 5.0.37 has profiling but for example, 5.1.20 does not * (avoid a trip to the server for MySQL before 5.0.37) * and do not set a constant as we might be switching servers */ if ($dbi->fetchValue('SELECT @@have_profiling')) { SessionCache::set('profiling_supported', true); return true; } SessionCache::set('profiling_supported', false); return false; } public static function enable(DatabaseInterface $dbi): void { if (! isset($_SESSION['profiling']) || ! self::isSupported($dbi)) { return; } $dbi->query('SET PROFILING=1;'); } /** @return array<string, string>|null */ public static function getInformation(DatabaseInterface $dbi): ?array { if (! isset($_SESSION['profiling']) || ! self::isSupported($dbi)) { return null; } return $dbi->fetchResult('SHOW PROFILE;'); } /** * Check if profiling was requested and remember it. */ public static function check(DatabaseInterface $dbi, ResponseRenderer $response): void { if (isset($_REQUEST['profiling']) && self::isSupported($dbi)) { $_SESSION['profiling'] = true; } elseif (isset($_REQUEST['profiling_form'])) { // the checkbox was unchecked unset($_SESSION['profiling']); } if (! isset($_SESSION['profiling'])) { return; } $scripts = $response->getHeader()->getScripts(); $scripts->addFiles([ 'chart.js', 'vendor/jqplot/jquery.jqplot.js', 'vendor/jqplot/plugins/jqplot.pieRenderer.js', 'vendor/jqplot/plugins/jqplot.highlighter.js', 'vendor/jquery/jquery.tablesorter.js', ]); } }