Exemple #1
0
 public function parse(&$var, Kint_Object &$o)
 {
     if (!is_string($var) || !preg_match('/0\\.[0-9]{8} [0-9]{10}/', $var)) {
         return;
     }
     if ($o->name !== 'microtime()' || $o->depth !== 0) {
         return;
     }
     list($usec, $sec) = explode(' ', $var);
     $time = (double) $usec + (double) $sec;
     if (self::$last !== null) {
         $last_time = array_sum(array_map('floatval', explode(' ', self::$last)));
         $lap = $time - $last_time;
         ++self::$times;
     } else {
         $lap = null;
         self::$start = $time;
     }
     self::$last = $var;
     if ($lap !== null) {
         $total = $time - self::$start;
         $r = new Kint_Object_Representation_Microtime(self::$group, $lap, $total, self::$times);
     } else {
         $r = new Kint_Object_Representation_Microtime(self::$group);
     }
     $r->contents = $var;
     $r->implicit_label = true;
     $o->removeRepresentation($o->value->name);
     $o->addRepresentation($r);
 }
Exemple #2
0
 public function parse(&$var, Kint_Object &$o)
 {
     if (!is_string($var) || strlen($var) > 2048 || preg_match('[[:?<>"*|]]', $var) || !@is_readable($var)) {
         return;
     }
     if (class_exists('SplFileInfo')) {
         $r = new Kint_Object_Representation_FsPath(new SplFileInfo($var));
         $o->addRepresentation($r, 0);
     }
 }
Exemple #3
0
 public function parse(&$var, Kint_Object &$o)
 {
     if (!is_string($var) || !preg_match('%^(?:[A-Za-z0-9+/=]{4})+$%', $var)) {
         return;
     }
     $data = base64_decode($var);
     if ($data === false) {
         return;
     }
     $base_obj = new Kint_Object();
     $base_obj->depth = $o->depth + 1;
     $base_obj->name = 'base64_decode(' . $o->name . ')';
     if ($o->access_path) {
         $base_obj->access_path = 'base64_decode(' . $o->access_path . ')';
     }
     $r = new Kint_Object_Representation('Base64');
     $r->contents = $this->parser->parse($data, $base_obj);
     $o->addRepresentation($r, 0);
 }
Exemple #4
0
 public function parse(&$var, Kint_Object &$o)
 {
     if (!is_string($var) || !isset($var[0]) || $var[0] !== '{' && $var[0] !== '[' || ($json = json_decode($var, true)) === null) {
         return;
     }
     $json = (array) $json;
     if (empty($json)) {
         return;
     }
     $base_obj = new Kint_Object();
     $base_obj->depth = $o->depth;
     if ($o->access_path) {
         $base_obj->access_path = 'json_decode(' . $o->access_path . ', true)';
     }
     $r = new Kint_Object_Representation('Json');
     $r->contents = $this->parser->parse($json, $base_obj);
     if (!in_array('depth_limit', $r->contents->hints)) {
         $r->contents = $r->contents->value->contents;
     }
     $o->addRepresentation($r, 0);
 }
Exemple #5
0
 public function parse(&$var, Kint_Object &$o)
 {
     if (!is_string($var) || substr($var, 0, 5) !== '<?xml') {
         return;
     }
     if (!method_exists($this, 'xmlTo' . self::$parse_method)) {
         return;
     }
     $xml = call_user_func(array(get_class($this), 'xmlTo' . self::$parse_method), $var, $o->access_path);
     if (empty($xml)) {
         return;
     }
     list($xml, $access_path, $name) = $xml;
     $base_obj = new Kint_Object();
     $base_obj->depth = $o->depth + 1;
     $base_obj->name = $name;
     $base_obj->access_path = $access_path;
     $r = new Kint_Object_Representation('XML');
     $r->contents = $this->parser->parse($xml, $base_obj);
     $o->addRepresentation($r, 0);
 }
Exemple #6
0
 public function parse(&$var, Kint_Object &$o)
 {
     if (!is_string($var)) {
         return;
     }
     $trimmed = rtrim($var);
     if ($trimmed !== 'N;' && !preg_match('/^[COabdis]:\\d+[:;]/', $trimmed)) {
         return;
     }
     // Second parameter only supported on PHP 7
     if (KINT_PHP70) {
         // Suppress warnings on unserializeable variable
         $data = @unserialize($trimmed, self::$options);
     } else {
         $data = @unserialize($trimmed);
     }
     if ($data === false && $trimmed !== 'b:0;') {
         return;
     }
     $base_obj = new Kint_Object();
     $base_obj->depth = $o->depth + 1;
     $base_obj->name = 'unserialize(' . $o->name . ')';
     if ($o->access_path) {
         $base_obj->access_path = 'unserialize(' . $o->access_path;
         if (!KINT_PHP70 || self::$options === array(true)) {
             $base_obj->access_path .= ')';
         } elseif (self::$options === array(false)) {
             $base_obj->access_path .= ', false)';
         } else {
             $base_obj->access_path .= ', Kint_Parser_Plugin_Serialize::$options)';
         }
     }
     $r = new Kint_Object_Representation('Serialized');
     $r->contents = $this->parser->parse($data, $base_obj);
     if (!in_array('depth_limit', $r->contents->hints) && is_array($data)) {
         $r->contents = $r->contents->value->contents;
     }
     $o->addRepresentation($r, 0);
 }
Exemple #7
0
 private function parseUnknown(&$var, Kint_Object $o)
 {
     $o->type = 'unknown';
     $rep = new Kint_Object_Representation('Unknown');
     $rep->contents = var_export($variable, true);
     $o->addRepresentation($rep);
     return $o;
 }