You are here

class krumo in Devel 6

Same name and namespace in other branches
  1. 7 krumo/class.krumo.php \krumo

Krumo API

This class stores the Krumo API for rendering and displaying the structured information it is reporting

@package Krumo

Hierarchy

Expanded class hierarchy of krumo

3 string references to 'krumo'
has_krumo in ./devel.module
krumo::dump in krumo/class.krumo.php
* Dump information about a variable * *
krumo::_marker in krumo/class.krumo.php
* Return the marked used to stain arrays * and objects in order to detect recursions * *

File

krumo/class.krumo.php, line 60

View source
class krumo {

  /**
   * Return Krumo version
   *
   * @return string
   * @access public
   * @static
   */
  static function version() {
    return '0.2a';
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Prints a debug backtrace
   *
   * @access public
   * @static
   */
  static function backtrace() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    return krumo::dump(debug_backtrace());
  }

  /**
   * Prints a list of all currently declared classes.
   *
   * @access public
   * @static
   */
  static function classes() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all currently declared classes.
</div>
		<?php

    return krumo::dump(get_declared_classes());
  }

  /**
   * Prints a list of all currently declared interfaces (PHP5 only).
   *
   * @access public
   * @static
   */
  static function interfaces() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all currently declared interfaces.
</div>
		<?php

    return krumo::dump(get_declared_interfaces());
  }

  /**
   * Prints a list of all currently included (or required) files.
   *
   * @access public
   * @static
   */
  static function includes() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all currently included (or required) files.
</div>
		<?php

    return krumo::dump(get_included_files());
  }

  /**
   * Prints a list of all currently declared functions.
   *
   * @access public
   * @static
   */
  static function functions() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all currently declared functions.
</div>
		<?php

    return krumo::dump(get_defined_functions());
  }

  /**
   * Prints a list of all currently declared constants.
   *
   * @access public
   * @static
   */
  static function defines() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all currently declared constants (defines).
</div>
		<?php

    return krumo::dump(get_defined_constants());
  }

  /**
   * Prints a list of all currently loaded PHP extensions.
   *
   * @access public
   * @static
   */
  static function extensions() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all currently loaded PHP extensions.
</div>
		<?php

    return krumo::dump(get_loaded_extensions());
  }

  /**
   * Prints a list of all HTTP request headers.
   *
   * @access public
   * @static
   */
  static function headers() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all HTTP request headers.
</div>
		<?php

    return krumo::dump(getAllHeaders());
  }

  /**
   * Prints a list of the configuration settings read from <i>php.ini</i>
   *
   * @access public
   * @static
   */
  static function phpini() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of the configuration settings read from <code><b><?php

    echo get_cfg_var('cfg_file_path');
    ?></b></code>.
</div>
		<?php

    return krumo::dump(parse_ini_file(get_cfg_var('cfg_file_path'), true));
  }

  /**
   * Prints a list of all your configuration settings.
   *
   * @access public
   * @static
   */
  static function conf() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all your configuration settings.
</div>
		<?php

    return krumo::dump(ini_get_all());
  }

  /**
   * Prints a list of the specified directories under your <i>include_path</i> option.
   *
   * @access public
   * @static
   */
  static function path() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of the specified directories under your <code><b>include_path</b></code> option.
</div>
		<?php

    return krumo::dump(explode(PATH_SEPARATOR, ini_get('include_path')));
  }

  /**
   * Prints a list of all the values from the <i>$_REQUEST</i> array.
   *
   * @access public
   * @static
   */
  static function request() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b>$_REQUEST</b></code> array.
</div>
		<?php

    return krumo::dump($_REQUEST);
  }

  /**
   * Prints a list of all the values from the <i>$_GET</i> array.
   *
   * @access public
   * @static
   */
  static function get() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b>$_GET</b></code> array.
</div>
		<?php

    return krumo::dump($_GET);
  }

  /**
   * Prints a list of all the values from the <i>$_POST</i> array.
   *
   * @access public
   * @static
   */
  static function post() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b>$_POST</b></code> array.
</div>
		<?php

    return krumo::dump($_POST);
  }

  /**
   * Prints a list of all the values from the <i>$_SERVER</i> array.
   *
   * @access public
   * @static
   */
  static function server() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b>$_SERVER</b></code> array.
</div>
		<?php

    return krumo::dump($_SERVER);
  }

  /**
   * Prints a list of all the values from the <i>$_COOKIE</i> array.
   *
   * @access public
   * @static
   */
  static function cookie() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b>$_COOKIE</b></code> array.
</div>
		<?php

    return krumo::dump($_COOKIE);
  }

  /**
   * Prints a list of all the values from the <i>$_ENV</i> array.
   *
   * @access public
   * @static
   */
  static function env() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b>$_ENV</b></code> array.
</div>
		<?php

    return krumo::dump($_ENV);
  }

  /**
   * Prints a list of all the values from the <i>$_SESSION</i> array.
   *
   * @access public
   * @static
   */
  static function session() {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b>$_SESSION</b></code> array.
</div>
		<?php

    return krumo::dump($_SESSION);
  }

  /**
   * Prints a list of all the values from an INI file.
   *
   * @param string $ini_file
   *
   * @access public
   * @static
   */
  static function ini($ini_file) {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // read it
    //
    if (!($_ = @parse_ini_file($ini_file, 1))) {
      return false;
    }

    // render it
    //
    ?>
<div class="krumo-title">
This is a list of all the values from the <code><b><?php

    echo realpath($ini_file) ? realpath($ini_file) : $ini_file;
    ?></b></code> INI file.
</div>
		<?php

    return krumo::dump($_);
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Dump information about a variable
   *
   * @param mixed $data,...
   * @access public
   * @static
   */
  static function dump($data) {

    // disabled ?
    //
    if (!krumo::_debug()) {
      return false;
    }

    // more arguments ?
    //
    if (func_num_args() > 1) {
      $_ = func_get_args();
      foreach ($_ as $d) {
        krumo::dump($d);
      }
      return;
    }

    // the css ?
    //
    krumo::_css();

    // find caller
    // DEVEL: we added array_reverse() so the proper file+line number is found.
    $_ = array_reverse(debug_backtrace());
    while ($d = array_pop($_)) {

      // DEVEL: changed if() condition below
      if (strpos(@$d['file'], 'devel') === FALSE && strpos(@$d['file'], 'krumo') === FALSE && @$d['class'] != 'krumo') {
        break;
      }
    }

    // the content
    //
    ?>
<div class="krumo-root" dir="ltr">
	<ul class="krumo-node krumo-first">
		<?php

    echo krumo::_dump($data);
    ?>
		<li class="krumo-footnote">
			<div class="krumo-version" style="white-space:nowrap;">
				<h6>Krumo version <?php

    echo krumo::version();
    ?></h6> | <a
					href="http://krumo.sourceforge.net"
					target="_blank">http://krumo.sourceforge.net</a>
			</div>
		
		<?php

    if (@$d['file']) {
      ?>
		<span class="krumo-call" style="white-space:nowrap;">
			Called from <code><?php

      echo $d['file'];
      ?></code>,
				line <code><?php

      echo $d['line'];
      ?></code></span>
		<?php

    }
    ?>
		&nbsp;
		</li>
	</ul>
</div>
<?php


    // flee the hive
    //
    $_recursion_marker = krumo::_marker();
    if ($hive =& krumo::_hive($dummy)) {
      foreach ($hive as $i => $bee) {
        if (is_object($bee)) {
          unset($hive[$i]->{$_recursion_marker});

          // DEVEL: changed 'else' to 'elseif' below
        }
        elseif (is_array($bee)) {
          unset($hive[$i][$_recursion_marker]);
        }
      }
    }

    // PHP 4.x.x array reference bug...
    //
    if (is_array($data) && version_compare(PHP_VERSION, "5", "<")) {
      unset($GLOBALS[krumo::_marker()]);
    }
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Print the skin (CSS)
   *
   * @return boolean
   * @access private
   * @static
   */
  static function _css() {
    static $_css = false;

    // already set ?
    //
    if ($_css) {
      return true;
    }
    $css = '';

    // DEVEL: changed for Drupal variables system
    $skin = variable_get('devel_krumo_skin', 'orange');

    // custom selected skin ?
    //
    $_ = KRUMO_DIR . "skins/{$skin}/skin.css";
    if ($fp = @fopen($_, 'r', 1)) {
      $css = fread($fp, filesize($_));
      fclose($fp);
    }

    // defautl skin ?
    //
    if (!$css && $skin != 'default') {
      $skin = 'default';
      $_ = KRUMO_DIR . "skins/default/skin.css";
      $css = join('', @file($_));
    }

    // print ?
    //
    if ($_css = $css != '') {

      // fix the urls
      //
      // DEVEL: changed for Drupal path system.
      $css_url = base_path() . drupal_get_path('module', 'devel') . "/krumo/skins/{$skin}/";
      $css = preg_replace('~%url%~Uis', $css_url, $css);

      // the CSS
      //
      ?>
<!-- Using Krumo Skin: <?php

      echo preg_replace('~^' . preg_quote(realpath(KRUMO_DIR) . DIRECTORY_SEPARATOR) . '~Uis', '', realpath($_));
      ?> -->
<style type="text/css">
<!--/**/
<?php

      echo $css;
      ?>

/**/-->
</style>
<?php


      // the JS
      //
      ?>
<script type="text/javascript">
<!--//
<?php

      echo join(file(KRUMO_DIR . "krumo.js"));
      ?>

//-->
</script>
<?php

    }
    return $_css;
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Enable Krumo
   *
   * @return boolean
   * @access public
   * @static
   */
  static function enable() {
    return true === krumo::_debug(true);
  }

  /**
   * Disable Krumo
   *
   * @return boolean
   * @access public
   * @static
   */
  static function disable() {
    return false === krumo::_debug(false);
  }

  /**
   * Get\Set Krumo state: whether it is enabled or disabled
   *
   * @param boolean $state
   * @return boolean
   * @access private
   * @static
   */
  static function _debug($state = null) {
    static $_ = true;

    // set
    //
    if (isset($state)) {
      $_ = (bool) $state;
    }

    // get
    //
    return $_;
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Dump information about a variable
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _dump(&$data, $name = '...') {

    // object ?
    //
    if (is_object($data)) {
      return krumo::_object($data, $name);
    }

    // array ?
    //
    if (is_array($data)) {

      // PHP 4.x.x array reference bug...
      //
      if (version_compare(PHP_VERSION, "5", "<")) {

        // prepare the GLOBAL reference list...
        //
        if (!isset($GLOBALS[krumo::_marker()])) {
          $GLOBALS[krumo::_marker()] = array();
        }
        if (!is_array($GLOBALS[krumo::_marker()])) {
          $GLOBALS[krumo::_marker()] = (array) $GLOBALS[krumo::_marker()];
        }

        // extract ?
        //
        if (!empty($GLOBALS[krumo::_marker()])) {
          $d = array_shift($GLOBALS[krumo::_marker()]);
          if (is_array($d)) {
            $data = $d;
          }
        }
      }
      return krumo::_array($data, $name);
    }

    // resource ?
    //
    if (is_resource($data)) {
      return krumo::_resource($data, $name);
    }

    // scalar ?
    //
    if (is_string($data)) {
      return krumo::_string($data, $name);
    }
    if (is_float($data)) {
      return krumo::_float($data, $name);
    }
    if (is_integer($data)) {
      return krumo::_integer($data, $name);
    }
    if (is_bool($data)) {
      return krumo::_boolean($data, $name);
    }

    // null ?
    //
    if (is_null($data)) {
      return krumo::_null($name);
    }
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for a NULL value
   *
   * @param string $name
   * @return string
   * @access private
   * @static
   */
  static function _null($name) {
    ?>
<li class="krumo-child">
	<div class="krumo-element"
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">
		
			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type krumo-null">NULL</em>)
	</div>
</li>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Return the marked used to stain arrays
   * and objects in order to detect recursions
   *
   * @return string
   * @access private
   * @static
   */
  static function _marker() {
    static $_recursion_marker;
    if (!isset($_recursion_marker)) {
      $_recursion_marker = uniqid('krumo');
    }
    return $_recursion_marker;
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Adds a variable to the hive of arrays and objects which
   * are tracked for whether they have recursive entries
   *
   * @param mixed &$bee either array or object, not a scallar vale
   * @return array all the bees
   *
   * @access private
   * @static
   */
  static function &_hive(&$bee) {
    static $_ = array();

    // new bee ?
    //
    if (!is_null($bee)) {

      // stain it
      //
      $_recursion_marker = krumo::_marker();
      is_object($bee) ? @$bee->{$_recursion_marker}++ : @$bee[$_recursion_marker]++;
      $_[0][] =& $bee;
    }

    // return all bees
    //
    return $_[0];
  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for the properties of an array or objeect
   *
   * @param mixed &$data
   * @access private
   * @static
   */
  static function _vars(&$data) {
    $_is_object = is_object($data);

    // test for references in order to
    // prevent endless recursion loops
    //
    $_recursion_marker = krumo::_marker();
    $_r = $_is_object ? @$data->{$_recursion_marker} : @$data[$_recursion_marker];
    $_r = (int) $_r;

    // recursion detected
    //
    if ($_r > 0) {
      return krumo::_recursion();
    }

    // stain it
    //
    krumo::_hive($data);

    // render it
    //
    ?>
<div class="krumo-nest" style="display:none;">
	<ul class="krumo-node">
	<?php


    // keys ?
    //
    $keys = $_is_object ? array_keys(get_object_vars($data)) : array_keys($data);

    // itterate
    //
    foreach ($keys as $k) {

      // skip marker
      //
      if ($k === $_recursion_marker) {
        continue;
      }

      // get real value
      //
      if ($_is_object) {
        $v =& $data->{$k};
      }
      else {
        $v =& $data[$k];
      }

      // PHP 4.x.x array reference bug...
      //
      if (is_array($data) && version_compare(PHP_VERSION, "5", "<")) {
        $GLOBALS[krumo::_marker()][] =& $v;
      }
      krumo::_dump($v, $k);
    }
    ?>
	</ul>
</div>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a block that detected recursion
   *
   * @access private
   * @static
   */
  static function _recursion() {
    ?>
<div class="krumo-nest" style="display:none;">
	<ul class="krumo-node">
		<li class="krumo-child">
			<div class="krumo-element"
				onMouseOver="krumo.over(this);"
				onMouseOut="krumo.out(this);">
					<a class="krumo-name"><big>&#8734;</big></a>
					(<em class="krumo-type">Recursion</em>)
			</div>
		
		</li>
	</ul>
</div>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for an array
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _array(&$data, $name) {
    ?>
<li class="krumo-child">
	
	<div class="krumo-element<?php

    echo count($data) > 0 ? ' krumo-expand' : '';
    ?>"
		<?php

    if (count($data) > 0) {
      ?> onClick="krumo.toggle(this);"<?php

    }
    ?>
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">
		
			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type">Array, <strong class="krumo-array-length"><?php

    echo count($data) == 1 ? "1 element" : count($data) . " elements";
    ?></strong></em>)
			
				
			<?php


    // callback ?
    //
    if (is_callable($data)) {
      $_ = array_values($data);
      ?>
				<span class="krumo-callback"> |
					(<em class="krumo-type">Callback</em>)
					<strong class="krumo-string"><?php

      echo htmlSpecialChars($_[0]);
      ?>::<?php

      echo htmlSpecialChars($_[1]);
      ?>();</strong></span>
				<?php

    }
    ?>
				
	</div>

	<?php

    if (count($data)) {
      krumo::_vars($data);
    }
    ?>
</li>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for an object
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _object(&$data, $name) {
    ?>
<li class="krumo-child">

	<div class="krumo-element<?php

    echo count($data) > 0 ? ' krumo-expand' : '';
    ?>"
		<?php

    if (count($data) > 0) {
      ?> onClick="krumo.toggle(this);"<?php

    }
    ?>
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">

			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type">Object</em>)
			<strong class="krumo-class"><?php

    echo get_class($data);
    ?></strong>
	</div>

	<?php

    if (count($data)) {
      krumo::_vars($data);
    }
    ?>
</li>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for a resource
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _resource($data, $name) {
    ?>
<li class="krumo-child">

	<div class="krumo-element"
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">
		
			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type">Resource</em>)
			<strong class="krumo-resource"><?php

    echo get_resource_type($data);
    ?></strong>
	</div>

</li>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for a boolean value
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _boolean($data, $name) {
    ?>
<li class="krumo-child">

	<div class="krumo-element"
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">
		
			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type">Boolean</em>)
			<strong class="krumo-boolean"><?php

    echo $data ? 'TRUE' : 'FALSE';
    ?></strong>
	</div>

</li>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for a integer value
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _integer($data, $name) {
    ?>
<li class="krumo-child">

	<div class="krumo-element"
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">
		
			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type">Integer</em>)
			<strong class="krumo-integer"><?php

    echo $data;
    ?></strong>
	</div>

</li>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for a float value
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _float($data, $name) {
    ?>
<li class="krumo-child">

	<div class="krumo-element"
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">
		
			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type">Float</em>)
			<strong class="krumo-float"><?php

    echo $data;
    ?></strong>
	</div>

</li>
<?php

  }

  // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  /**
   * Render a dump for a string value
   *
   * @param mixed $data
   * @param string $name
   * @access private
   * @static
   */
  static function _string($data, $name) {

    // extra ?
    //
    $_extra = false;
    $_ = $data;
    if (strLen($data) > KRUMO_TRUNCATE_LENGTH) {
      $_ = substr($data, 0, KRUMO_TRUNCATE_LENGTH - 3) . '...';
      $_extra = true;
    }
    ?>
<li class="krumo-child">

	<div class="krumo-element<?php

    echo $_extra ? ' krumo-expand' : '';
    ?>"
		<?php

    if ($_extra) {
      ?> onClick="krumo.toggle(this);"<?php

    }
    ?>
		onMouseOver="krumo.over(this);"
		onMouseOut="krumo.out(this);">

			<?php


    /* DEVEL: added htmlSpecialChars */
    ?>
			<a class="krumo-name"><?php

    echo htmlSpecialChars($name);
    ?></a>
			(<em class="krumo-type">String,
				<strong class="krumo-string-length"><?php

    echo strlen($data);
    ?> characters</strong> </em>)
			<strong class="krumo-string"><?php

    echo htmlSpecialChars($_);
    ?></strong>
			
			<?php


    // callback ?
    //
    if (is_callable($data)) {
      ?>
				<span class="krumo-callback"> |
					(<em class="krumo-type">Callback</em>)
					<strong class="krumo-string"><?php

      echo htmlSpecialChars($_);
      ?>();</strong></span>
				<?php

    }
    ?>
			
	</div>
	
	<?php

    if ($_extra) {
      ?>
	<div class="krumo-nest" style="display:none;">
		<ul class="krumo-node">
			
			<li class="krumo-child">
				<div class="krumo-preview"><?php

      echo htmlSpecialChars($data);
      ?></div>
			</li>
			
		</ul>
	</div>
	<?php

    }
    ?>
</li>
<?php

  }

}

Members

Namesort descending Modifiers Type Description Overrides
krumo::backtrace static function * Prints a debug backtrace * * @access public * @static
krumo::classes static function * Prints a list of all currently declared classes. * * @access public * @static
krumo::conf static function * Prints a list of all your configuration settings. * * @access public * @static
krumo::cookie static function * Prints a list of all the values from the <i>$_COOKIE</i> array. * * @access public * @static
krumo::defines static function * Prints a list of all currently declared constants. * * @access public * @static
krumo::disable static function * Disable Krumo * *
krumo::dump static function * Dump information about a variable * *
krumo::enable static function * Enable Krumo * *
krumo::env static function * Prints a list of all the values from the <i>$_ENV</i> array. * * @access public * @static
krumo::extensions static function * Prints a list of all currently loaded PHP extensions. * * @access public * @static
krumo::functions static function * Prints a list of all currently declared functions. * * @access public * @static
krumo::get static function * Prints a list of all the values from the <i>$_GET</i> array. * * @access public * @static
krumo::headers static function * Prints a list of all HTTP request headers. * * @access public * @static
krumo::includes static function * Prints a list of all currently included (or required) files. * * @access public * @static
krumo::ini static function * Prints a list of all the values from an INI file. * *
krumo::interfaces static function * Prints a list of all currently declared interfaces (PHP5 only). * * @access public * @static
krumo::path static function * Prints a list of the specified directories under your <i>include_path</i> option. * * @access public * @static
krumo::phpini static function * Prints a list of the configuration settings read from <i>php.ini</i> * * @access public * @static
krumo::post static function * Prints a list of all the values from the <i>$_POST</i> array. * * @access public * @static
krumo::request static function * Prints a list of all the values from the <i>$_REQUEST</i> array. * * @access public * @static
krumo::server static function * Prints a list of all the values from the <i>$_SERVER</i> array. * * @access public * @static
krumo::session static function * Prints a list of all the values from the <i>$_SESSION</i> array. * * @access public * @static
krumo::version static function * Return Krumo version * *
krumo::_array static function * Render a dump for an array * *
krumo::_boolean static function * Render a dump for a boolean value * *
krumo::_css static function * Print the skin (CSS) * *
krumo::_debug static function * Get\Set Krumo state: whether it is enabled or disabled * *
krumo::_dump static function * Dump information about a variable * *
krumo::_float static function * Render a dump for a float value * *
krumo::_hive static function * Adds a variable to the hive of arrays and objects which * are tracked for whether they have recursive entries * *
krumo::_integer static function * Render a dump for a integer value * *
krumo::_marker static function * Return the marked used to stain arrays * and objects in order to detect recursions * *
krumo::_null static function * Render a dump for a NULL value * *
krumo::_object static function * Render a dump for an object * *
krumo::_recursion static function * Render a block that detected recursion * * @access private * @static
krumo::_resource static function * Render a dump for a resource * *
krumo::_string static function * Render a dump for a string value * *
krumo::_vars static function * Render a dump for the properties of an array or objeect * *