You are here

class Kint in Devel 8.3

Same name and namespace in other branches
  1. 4.x src/Plugin/Devel/Dumper/Kint.php \Drupal\devel\Plugin\Devel\Dumper\Kint

Provides a Kint dumper plugin.

Plugin annotation


@DevelDumper(
  id = "kint",
  label = @Translation("Kint"),
  description = @Translation("Wrapper for <a href='https://github.com/kint-php/kint'>Kint</a> debugging tool."),
)

Hierarchy

Expanded class hierarchy of Kint

2 string references to 'Kint'
Kint::checkRequirements in src/Plugin/Devel/Dumper/Kint.php
Checks if requirements for this plugin are satisfied.
Kint::export in src/Plugin/Devel/Dumper/Kint.php
Returns a string representation of a variable.

File

src/Plugin/Devel/Dumper/Kint.php, line 19

Namespace

Drupal\devel\Plugin\Devel\Dumper
View source
class Kint extends DevelDumperBase {

  /**
   * {@inheritdoc}
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this
      ->configure();
  }

  /**
   * Configures kint with more sane values.
   */
  protected function configure() {

    // Remove resource-hungry plugins.
    \Kint::$plugins = array_diff(\Kint::$plugins, [
      'Kint\\Parser\\ClassMethodsPlugin',
      'Kint\\Parser\\ClassStaticsPlugin',
      'Kint\\Parser\\IteratorPlugin',
    ]);
    \Kint::$aliases = $this
      ->getInternalFunctions();
    RichRenderer::$folder = FALSE;
    BlacklistPlugin::$shallow_blacklist[] = ContainerInterface::class;
  }

  /**
   * {@inheritdoc}
   */
  public function export($input, $name = NULL) {
    ob_start();
    if ($name == '__ARGS__') {
      call_user_func_array([
        'Kint',
        'dump',
      ], $input);
      $name = NULL;
    }
    elseif ($name !== NULL) {

      // In order to get the correct access path information returned from Kint
      // we have to give a second parameter here. This is due to a fault in
      // Kint::getSingleCall which returns no info when the number of arguments
      // passed to Kint::dump does not match the number in the original call
      // that invoked the export (such as dsm). However, this second parameter
      // is just treated as the next variable to dump, it is not used as the
      // label. So we give a dummy value that we can remove below.
      // @see https://gitlab.com/drupalspoons/devel/-/issues/252
      \Kint::dump($input, '---remove-this---');
    }
    else {
      \Kint::dump($input);
    }
    $dump = ob_get_clean();
    if ($name) {

      // Kint no longer treats an additional parameter as a custom title, but we
      // can add in the required $name to the dump output. Providing that a
      // variable starting with $ was passed to the original call, we can find
      // the place where this starts and add in our custom $name.
      $dump = str_replace('<dfn>$', '<dfn>' . $name . ': $', $dump);

      // Remove the output for the second dummy parameter. $1 will be the greedy
      // match of everything before <dl><dt> related to the section to remove.
      $pattern = '/(.*)(<dl><dt>)(.*)("---remove-this---"<\\/dt><\\/dl>)/';
      $dump = preg_replace($pattern, '$1', $dump, 1);
    }
    return $this
      ->setSafeMarkup($dump);
  }

  /**
   * {@inheritdoc}
   */
  public static function checkRequirements() {
    return class_exists('Kint', TRUE);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
DevelDumperBase::dump public function Dumps information about a variable. Overrides DevelDumperInterface::dump 2
DevelDumperBase::exportAsRenderable public function Returns a string representation of a variable wrapped in a render array. Overrides DevelDumperInterface::exportAsRenderable 2
DevelDumperBase::getInternalFunctions protected function Returns a list of internal functions.
DevelDumperBase::setSafeMarkup protected function Wrapper for \Drupal\Core\Render\Markup::create().
Kint::checkRequirements public static function Checks if requirements for this plugin are satisfied. Overrides DevelDumperInterface::checkRequirements
Kint::configure protected function Configures kint with more sane values.
Kint::export public function Returns a string representation of a variable. Overrides DevelDumperInterface::export
Kint::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.