mirror of
https://github.com/maximebf/php-debugbar.git
synced 2025-07-25 10:41:55 +02:00
Refactor DataCollector html dumper (#578)
Co-authored-by: Barry vd. Heuvel <barryvdh@gmail.com>
This commit is contained in:
@@ -19,34 +19,6 @@ class ConfigCollector extends DataCollector implements Renderable, AssetProvider
|
||||
|
||||
protected $data;
|
||||
|
||||
// The HTML var dumper requires debug bar users to support the new inline assets, which not all
|
||||
// may support yet - so return false by default for now.
|
||||
protected $useHtmlVarDumper = false;
|
||||
|
||||
/**
|
||||
* Sets a flag indicating whether the Symfony HtmlDumper will be used to dump variables for
|
||||
* rich variable rendering.
|
||||
*
|
||||
* @param bool $value
|
||||
* @return $this
|
||||
*/
|
||||
public function useHtmlVarDumper($value = true)
|
||||
{
|
||||
$this->useHtmlVarDumper = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the Symfony HtmlDumper will be used to dump variables for rich variable
|
||||
* rendering.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function isHtmlVarDumperUsed()
|
||||
{
|
||||
return $this->useHtmlVarDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @param string $name
|
||||
|
@@ -10,70 +10,22 @@
|
||||
|
||||
namespace DebugBar\DataCollector;
|
||||
|
||||
use DebugBar\DataFormatter\DataFormatter;
|
||||
use DebugBar\DataFormatter\DataFormatterInterface;
|
||||
use DebugBar\DataFormatter\DebugBarVarDumper;
|
||||
use DebugBar\DataFormatter\HasDataFormatter;
|
||||
|
||||
/**
|
||||
* Abstract class for data collectors
|
||||
*/
|
||||
abstract class DataCollector implements DataCollectorInterface
|
||||
{
|
||||
private static $defaultDataFormatter;
|
||||
private static $defaultVarDumper;
|
||||
use HasDataFormatter;
|
||||
|
||||
public static $defaultDataFormatter;
|
||||
public static $defaultVarDumper;
|
||||
|
||||
protected $dataFormater;
|
||||
protected $varDumper;
|
||||
protected $xdebugLinkTemplate = '';
|
||||
protected $xdebugShouldUseAjax = false;
|
||||
protected $xdebugReplacements = array();
|
||||
|
||||
/**
|
||||
* Sets the default data formater instance used by all collectors subclassing this class
|
||||
*
|
||||
* @param DataFormatterInterface $formater
|
||||
*/
|
||||
public static function setDefaultDataFormatter(DataFormatterInterface $formater)
|
||||
{
|
||||
self::$defaultDataFormatter = $formater;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default data formater
|
||||
*
|
||||
* @return DataFormatterInterface
|
||||
*/
|
||||
public static function getDefaultDataFormatter()
|
||||
{
|
||||
if (self::$defaultDataFormatter === null) {
|
||||
self::$defaultDataFormatter = new DataFormatter();
|
||||
}
|
||||
return self::$defaultDataFormatter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data formater instance used by this collector
|
||||
*
|
||||
* @param DataFormatterInterface $formater
|
||||
* @return $this
|
||||
*/
|
||||
public function setDataFormatter(DataFormatterInterface $formater)
|
||||
{
|
||||
$this->dataFormater = $formater;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DataFormatterInterface
|
||||
*/
|
||||
public function getDataFormatter()
|
||||
{
|
||||
if ($this->dataFormater === null) {
|
||||
$this->dataFormater = self::getDefaultDataFormatter();
|
||||
}
|
||||
return $this->dataFormater;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shorten the file path by removing the xdebug path replacements
|
||||
*
|
||||
@@ -136,79 +88,6 @@ abstract class DataCollector implements DataCollectorInterface
|
||||
return ['url' => $url, 'ajax' => $this->getXdebugShouldUseAjax()];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default variable dumper used by all collectors subclassing this class
|
||||
*
|
||||
* @param DebugBarVarDumper $varDumper
|
||||
*/
|
||||
public static function setDefaultVarDumper(DebugBarVarDumper $varDumper)
|
||||
{
|
||||
self::$defaultVarDumper = $varDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default variable dumper
|
||||
*
|
||||
* @return DebugBarVarDumper
|
||||
*/
|
||||
public static function getDefaultVarDumper()
|
||||
{
|
||||
if (self::$defaultVarDumper === null) {
|
||||
self::$defaultVarDumper = new DebugBarVarDumper();
|
||||
}
|
||||
return self::$defaultVarDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the variable dumper instance used by this collector
|
||||
*
|
||||
* @param DebugBarVarDumper $varDumper
|
||||
* @return $this
|
||||
*/
|
||||
public function setVarDumper(DebugBarVarDumper $varDumper)
|
||||
{
|
||||
$this->varDumper = $varDumper;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the variable dumper instance used by this collector; note that collectors using this
|
||||
* instance need to be sure to return the static assets provided by the variable dumper.
|
||||
*
|
||||
* @return DebugBarVarDumper
|
||||
*/
|
||||
public function getVarDumper()
|
||||
{
|
||||
if ($this->varDumper === null) {
|
||||
$this->varDumper = self::getDefaultVarDumper();
|
||||
}
|
||||
return $this->varDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function formatVar($var)
|
||||
{
|
||||
return $this->getDataFormatter()->formatVar($var);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function formatDuration($seconds)
|
||||
{
|
||||
return $this->getDataFormatter()->formatDuration($seconds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function formatBytes($size, $precision = 2)
|
||||
{
|
||||
return $this->getDataFormatter()->formatBytes($size, $precision);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
|
@@ -21,10 +21,6 @@ class ExceptionsCollector extends DataCollector implements Renderable
|
||||
protected $exceptions = array();
|
||||
protected $chainExceptions = false;
|
||||
|
||||
// The HTML var dumper requires debug bar users to support the new inline assets, which not all
|
||||
// may support yet - so return false by default for now.
|
||||
protected $useHtmlVarDumper = false;
|
||||
|
||||
/**
|
||||
* Adds an exception to be profiled in the debug bar
|
||||
*
|
||||
@@ -69,30 +65,6 @@ class ExceptionsCollector extends DataCollector implements Renderable
|
||||
return $this->exceptions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a flag indicating whether the Symfony HtmlDumper will be used to dump variables for
|
||||
* rich variable rendering.
|
||||
*
|
||||
* @param bool $value
|
||||
* @return $this
|
||||
*/
|
||||
public function useHtmlVarDumper($value = true)
|
||||
{
|
||||
$this->useHtmlVarDumper = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the Symfony HtmlDumper will be used to dump variables for rich variable
|
||||
* rendering.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function isHtmlVarDumperUsed()
|
||||
{
|
||||
return $this->useHtmlVarDumper;
|
||||
}
|
||||
|
||||
public function collect()
|
||||
{
|
||||
return array(
|
||||
|
@@ -11,28 +11,21 @@
|
||||
namespace DebugBar\DataCollector;
|
||||
|
||||
use Psr\Log\AbstractLogger;
|
||||
use DebugBar\DataFormatter\DataFormatterInterface;
|
||||
use DebugBar\DataFormatter\DebugBarVarDumper;
|
||||
use DebugBar\DataFormatter\HasDataFormatter;
|
||||
|
||||
/**
|
||||
* Provides a way to log messages
|
||||
*/
|
||||
class MessagesCollector extends AbstractLogger implements DataCollectorInterface, MessagesAggregateInterface, Renderable, AssetProvider
|
||||
{
|
||||
use HasDataFormatter;
|
||||
|
||||
protected $name;
|
||||
|
||||
protected $messages = array();
|
||||
|
||||
protected $aggregates = array();
|
||||
|
||||
protected $dataFormater;
|
||||
|
||||
protected $varDumper;
|
||||
|
||||
// The HTML var dumper requires debug bar users to support the new inline assets, which not all
|
||||
// may support yet - so return false by default for now.
|
||||
protected $useHtmlVarDumper = false;
|
||||
|
||||
/** @var bool */
|
||||
protected $collectFile = false;
|
||||
|
||||
@@ -50,79 +43,6 @@ class MessagesCollector extends AbstractLogger implements DataCollectorInterface
|
||||
$this->collectFile = $enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data formater instance used by this collector
|
||||
*
|
||||
* @param DataFormatterInterface $formater
|
||||
* @return $this
|
||||
*/
|
||||
public function setDataFormatter(DataFormatterInterface $formater)
|
||||
{
|
||||
$this->dataFormater = $formater;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DataFormatterInterface
|
||||
*/
|
||||
public function getDataFormatter()
|
||||
{
|
||||
if ($this->dataFormater === null) {
|
||||
$this->dataFormater = DataCollector::getDefaultDataFormatter();
|
||||
}
|
||||
return $this->dataFormater;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the variable dumper instance used by this collector
|
||||
*
|
||||
* @param DebugBarVarDumper $varDumper
|
||||
* @return $this
|
||||
*/
|
||||
public function setVarDumper(DebugBarVarDumper $varDumper)
|
||||
{
|
||||
$this->varDumper = $varDumper;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the variable dumper instance used by this collector
|
||||
*
|
||||
* @return DebugBarVarDumper
|
||||
*/
|
||||
public function getVarDumper()
|
||||
{
|
||||
if ($this->varDumper === null) {
|
||||
$this->varDumper = DataCollector::getDefaultVarDumper();
|
||||
}
|
||||
return $this->varDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a flag indicating whether the Symfony HtmlDumper will be used to dump variables for
|
||||
* rich variable rendering. Be sure to set this flag before logging any messages for the
|
||||
* first time.
|
||||
*
|
||||
* @param bool $value
|
||||
* @return $this
|
||||
*/
|
||||
public function useHtmlVarDumper($value = true)
|
||||
{
|
||||
$this->useHtmlVarDumper = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the Symfony HtmlDumper will be used to dump variables for rich variable
|
||||
* rendering.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function isHtmlVarDumperUsed()
|
||||
{
|
||||
return $this->useHtmlVarDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a message
|
||||
*
|
||||
|
@@ -15,34 +15,6 @@ namespace DebugBar\DataCollector;
|
||||
*/
|
||||
class RequestDataCollector extends DataCollector implements Renderable, AssetProvider
|
||||
{
|
||||
// The HTML var dumper requires debug bar users to support the new inline assets, which not all
|
||||
// may support yet - so return false by default for now.
|
||||
protected $useHtmlVarDumper = false;
|
||||
|
||||
/**
|
||||
* Sets a flag indicating whether the Symfony HtmlDumper will be used to dump variables for
|
||||
* rich variable rendering.
|
||||
*
|
||||
* @param bool $value
|
||||
* @return $this
|
||||
*/
|
||||
public function useHtmlVarDumper($value = true)
|
||||
{
|
||||
$this->useHtmlVarDumper = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the Symfony HtmlDumper will be used to dump variables for rich variable
|
||||
* rendering.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function isHtmlVarDumperUsed()
|
||||
{
|
||||
return $this->useHtmlVarDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
|
164
src/DebugBar/DataFormatter/HasDataFormatter.php
Normal file
164
src/DebugBar/DataFormatter/HasDataFormatter.php
Normal file
@@ -0,0 +1,164 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of the DebugBar package.
|
||||
*
|
||||
* (c) 2013 Maxime Bouroumeau-Fuseau
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace DebugBar\DataFormatter;
|
||||
|
||||
use DebugBar\DataCollector\DataCollector;
|
||||
|
||||
trait HasDataFormatter
|
||||
{
|
||||
// The HTML var dumper requires debug bar users to support the new inline assets, which not all
|
||||
// may support yet - so return false by default for now.
|
||||
protected $useHtmlVarDumper = false;
|
||||
protected $dataFormater;
|
||||
protected $varDumper;
|
||||
|
||||
/**
|
||||
* Sets a flag indicating whether the Symfony HtmlDumper will be used to dump variables for
|
||||
* rich variable rendering.
|
||||
*
|
||||
* @param bool $value
|
||||
* @return $this
|
||||
*/
|
||||
public function useHtmlVarDumper($value = true)
|
||||
{
|
||||
$this->useHtmlVarDumper = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the Symfony HtmlDumper will be used to dump variables for rich variable
|
||||
* rendering.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function isHtmlVarDumperUsed()
|
||||
{
|
||||
return $this->useHtmlVarDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default data formater instance used by all collectors subclassing this class
|
||||
*
|
||||
* @param DataFormatterInterface $formater
|
||||
*/
|
||||
public static function setDefaultDataFormatter(DataFormatterInterface $formater)
|
||||
{
|
||||
DataCollector::$defaultDataFormatter = $formater;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default data formater
|
||||
*
|
||||
* @return DataFormatterInterface
|
||||
*/
|
||||
public static function getDefaultDataFormatter()
|
||||
{
|
||||
if (DataCollector::$defaultDataFormatter === null) {
|
||||
DataCollector::$defaultDataFormatter = new DataFormatter();
|
||||
}
|
||||
return DataCollector::$defaultDataFormatter;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data formater instance used by this collector
|
||||
*
|
||||
* @param DataFormatterInterface $formater
|
||||
* @return $this
|
||||
*/
|
||||
public function setDataFormatter(DataFormatterInterface $formater)
|
||||
{
|
||||
$this->dataFormater = $formater;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DataFormatterInterface
|
||||
*/
|
||||
public function getDataFormatter()
|
||||
{
|
||||
if ($this->dataFormater === null) {
|
||||
$this->dataFormater = DataCollector::getDefaultDataFormatter();
|
||||
}
|
||||
return $this->dataFormater;
|
||||
}
|
||||
/**
|
||||
* Sets the default variable dumper used by all collectors subclassing this class
|
||||
*
|
||||
* @param DebugBarVarDumper $varDumper
|
||||
*/
|
||||
public static function setDefaultVarDumper(DebugBarVarDumper $varDumper)
|
||||
{
|
||||
DataCollector::$defaultVarDumper = $varDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default variable dumper
|
||||
*
|
||||
* @return DebugBarVarDumper
|
||||
*/
|
||||
public static function getDefaultVarDumper()
|
||||
{
|
||||
if (DataCollector::$defaultVarDumper === null) {
|
||||
DataCollector::$defaultVarDumper = new DebugBarVarDumper();
|
||||
}
|
||||
return DataCollector::$defaultVarDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the variable dumper instance used by this collector
|
||||
*
|
||||
* @param DebugBarVarDumper $varDumper
|
||||
* @return $this
|
||||
*/
|
||||
public function setVarDumper(DebugBarVarDumper $varDumper)
|
||||
{
|
||||
$this->varDumper = $varDumper;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the variable dumper instance used by this collector; note that collectors using this
|
||||
* instance need to be sure to return the static assets provided by the variable dumper.
|
||||
*
|
||||
* @return DebugBarVarDumper
|
||||
*/
|
||||
public function getVarDumper()
|
||||
{
|
||||
if ($this->varDumper === null) {
|
||||
$this->varDumper = DataCollector::getDefaultVarDumper();
|
||||
}
|
||||
return $this->varDumper;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function formatVar($var)
|
||||
{
|
||||
return $this->getDataFormatter()->formatVar($var);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function formatDuration($seconds)
|
||||
{
|
||||
return $this->getDataFormatter()->formatDuration($seconds);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public function formatBytes($size, $precision = 2)
|
||||
{
|
||||
return $this->getDataFormatter()->formatBytes($size, $precision);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user