primo commit
This commit is contained in:
93
plugins/system/debug/src/DataFormatter.php
Normal file
93
plugins/system/debug/src/DataFormatter.php
Normal file
@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Plugin
|
||||
* @subpackage System.Debug
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Plugin\System\Debug;
|
||||
|
||||
use DebugBar\DataFormatter\DataFormatter as DebugBarDataFormatter;
|
||||
|
||||
// phpcs:disable PSR1.Files.SideEffects
|
||||
\defined('_JEXEC') or die;
|
||||
// phpcs:enable PSR1.Files.SideEffects
|
||||
|
||||
/**
|
||||
* DataFormatter
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class DataFormatter extends DebugBarDataFormatter
|
||||
{
|
||||
/**
|
||||
* Strip the root path.
|
||||
*
|
||||
* @param string $path The path.
|
||||
* @param string $replacement The replacement
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function formatPath($path, $replacement = ''): string
|
||||
{
|
||||
return str_replace(JPATH_ROOT, $replacement, $path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a string from back trace.
|
||||
*
|
||||
* @param array $call The array to format
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function formatCallerInfo(array $call): string
|
||||
{
|
||||
$string = '';
|
||||
|
||||
if (isset($call['class'])) {
|
||||
// If entry has Class/Method print it.
|
||||
$string .= htmlspecialchars($call['class'] . $call['type'] . $call['function']) . '()';
|
||||
} elseif (isset($call['args'][0]) && \is_array($call['args'][0])) {
|
||||
$string .= htmlspecialchars($call['function']) . ' (';
|
||||
|
||||
foreach ($call['args'][0] as $arg) {
|
||||
// Check if the arguments can be used as string
|
||||
if (\is_object($arg) && !method_exists($arg, '__toString')) {
|
||||
$arg = \get_class($arg);
|
||||
}
|
||||
|
||||
// Keep only the size of array
|
||||
if (\is_array($arg)) {
|
||||
$arg = 'Array(count=' . \count($arg) . ')';
|
||||
}
|
||||
|
||||
$string .= htmlspecialchars($arg) . ', ';
|
||||
}
|
||||
|
||||
$string = rtrim($string, ', ') . ')';
|
||||
} elseif (isset($call['args'][0])) {
|
||||
$string .= htmlspecialchars($call['function']) . '(';
|
||||
|
||||
if (\is_scalar($call['args'][0])) {
|
||||
$string .= $call['args'][0];
|
||||
} elseif (\is_object($call['args'][0])) {
|
||||
$string .= \get_class($call['args'][0]);
|
||||
} else {
|
||||
$string .= \gettype($call['args'][0]);
|
||||
}
|
||||
$string .= ')';
|
||||
} else {
|
||||
// It's a function.
|
||||
$string .= htmlspecialchars($call['function']) . '()';
|
||||
}
|
||||
|
||||
return $string;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user