debug.php
1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
/**
* @package Joomla.Libraries
* @subpackage HTML
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('JPATH_PLATFORM') or die;
/**
* Extended Utility class for render debug information.
*
* @since 3.7.0
*/
abstract class JHtmlDebug
{
/**
* xdebug.file_link_format from the php.ini.
*
* Make this property public to support test.
*
* @var string
*
* @since 3.7.0
*/
public static $xdebugLinkFormat;
/**
* Replaces the Joomla! root with "JROOT" to improve readability.
* Formats a link with a special value xdebug.file_link_format
* from the php.ini file.
*
* @param string $file The full path to the file.
* @param string $line The line number.
*
* @return string
*
* @throws \InvalidArgumentException
*
* @since 3.7.0
*/
public static function xdebuglink($file, $line = '')
{
if (static::$xdebugLinkFormat === null)
{
static::$xdebugLinkFormat = ini_get('xdebug.file_link_format');
}
$link = str_replace(JPATH_ROOT, 'JROOT', JPath::clean($file));
$link .= $line ? ':' . $line : '';
if (static::$xdebugLinkFormat)
{
$href = static::$xdebugLinkFormat;
$href = str_replace('%f', $file, $href);
$href = str_replace('%l', $line, $href);
$html = JHtml::_('link', $href, $link);
}
else
{
$html = $link;
}
return $html;
}
}