Exemple #1
0
 public static function renderLockedHeader(Kint_Object $o, $content)
 {
     $header = '<dt class="kint-parent kint-locked">';
     if ($o->depth > 0 && ($ap = $o->getAccessPath())) {
         $header .= '<span class="kint-access-path-trigger" title="Show access path">&rlarr;</span>';
     }
     $header .= '<span class="kint-popup-trigger" title="Open in new window">&rarr;</span><nav></nav>';
     if (($s = $o->getModifiers()) !== null) {
         $header .= '<var>' . $s . '</var> ';
     }
     if (($s = $o->getName()) !== null) {
         $header .= '<dfn>' . Kint_Object_Blob::escape($s) . '</dfn> ';
         if ($s = $o->getOperator()) {
             $header .= Kint_Object_Blob::escape($s) . ' ';
         }
     }
     if (($s = $o->getType()) !== null) {
         $header .= '<var>' . Kint_Object_Blob::escape($s) . '</var>';
     }
     if (($s = $o->getSize()) !== null) {
         $header .= '(' . $s . ') ';
     }
     $header .= $content;
     if (!empty($ap)) {
         $header .= '<div class="access-path">' . Kint_Object_Blob::escape($ap) . '</div>';
     }
     return $header . '</dt>';
 }
Exemple #2
0
 private function parseString(&$var, Kint_Object $o)
 {
     $string = $o->transplant(new Kint_Object_Blob());
     $string->encoding = Kint_Object_Blob::detectEncoding($var);
     $string->size = Kint_Object_Blob::strlen($var, $string->encoding);
     $rep = new Kint_Object_Representation('Contents');
     $rep->contents = $var;
     $rep->implicit_label = true;
     $string->addRepresentation($rep);
     return $string;
 }
Exemple #3
0
 public function getValueShort()
 {
     if (!$this->value || !$this->value instanceof Kint_Object_Representation_Docstring) {
         return parent::getValueShort();
     }
     $string = array();
     $lines = explode("\n", $this->value->docstringWithoutComments());
     foreach ($lines as $line) {
         if (Kint_Object_Blob::strlen($line) === 0) {
             break;
         }
         $string[] = $line;
     }
     return implode(' ', $string);
 }
Exemple #4
0
 public function render($o)
 {
     $children = $this->renderer->renderChildren($o);
     if (!$o instanceof Kint_Object_Closure) {
         $header = Kint_Renderer_Rich::renderHeader($o);
     } else {
         $header = '';
         if (($s = $o->getModifiers()) !== null) {
             $header .= '<var>' . $s . '</var> ';
         }
         if (($s = $o->getName()) !== null) {
             $header .= '<dfn>' . Kint_Object_Blob::escape($s . '(' . $o->getParams() . ')') . '</dfn> ';
         }
         $header .= '<var>Closure</var>';
         $header .= Kint_Object_Blob::escape(Kint::shortenPath($o->filename)) . ':' . (int) $o->startline;
     }
     $header = Kint_Renderer_Rich::renderHeaderWrapper($o, (bool) strlen($children), $header);
     return '<dl>' . $header . $children . '</dl>';
 }
Exemple #5
0
 public function render($r)
 {
     if (!$r instanceof Kint_Object_Representation_Docstring) {
         return false;
     }
     $docstring = array();
     foreach (explode("\n", $r->contents) as $line) {
         $docstring[] = trim($line);
     }
     $docstring = implode("\n", $docstring);
     $location = '';
     if ($r->file && $r->line) {
         if (strlen($docstring)) {
             $location = "\n\n";
         }
         $location .= '<small>Defined in ' . Kint_Object_Blob::escape(Kint::shortenPath($r->file)) . ':' . (int) $r->line . '</small>';
     }
     if (strlen($docstring) === 0 && strlen($location) === 0) {
         return '';
     }
     return '<pre>' . Kint_Object_Blob::escape($docstring) . $location . '</pre>';
 }
Exemple #6
0
 public function render($o)
 {
     $children = $this->renderer->renderChildren($o);
     $header = '';
     if (($s = $o->getModifiers()) !== null) {
         $header .= '<var>' . $s . '</var> ';
     }
     if (($s = $o->getName()) !== null) {
         $header .= '<dfn>' . Kint_Object_Blob::escape($s . '(' . $o->getParams() . ')') . '</dfn>';
     }
     if (!empty($o->returntype)) {
         $header .= ': <var>' . Kint_Object_Blob::escape($o->returntype) . '</var>';
     }
     if (($s = $o->getValueShort()) !== null) {
         if (Kint_Object_Blob::strlen($s) > Kint::$max_str_length) {
             $s = substr($s, 0, Kint::$max_str_length) . '...';
         }
         $header .= ' ' . Kint_Object_Blob::escape($s);
     }
     // $header .= Kint_Object_Blob::escape(Kint::shortenPath($o->filename)).':'.(int) $o->startline;
     $header = Kint_Renderer_Rich::renderHeaderWrapper($o, (bool) strlen($children), $header);
     return '<dl>' . $header . $children . '</dl>';
 }
Exemple #7
0
 public function render($r)
 {
     if (!$r instanceof Kint_Object_Representation_Source || empty($r->source)) {
         return false;
     }
     $source = $r->source;
     // Trim empty lines from the start and end of the source
     foreach ($source as $linenum => $line) {
         if (trim($line) || $linenum === $r->line) {
             break;
         } else {
             unset($source[$linenum]);
         }
     }
     foreach (array_reverse($source, true) as $linenum => $line) {
         if (trim($line) || $linenum === $r->line) {
             break;
         } else {
             unset($source[$linenum]);
         }
     }
     // set the zero-padding amount for line numbers
     $format = '% ' . strlen(max(array_keys($r->source))) . 'd';
     $output = '';
     foreach ($source as $line_number => $line) {
         $output .= '<div';
         if ($line_number === $r->line) {
             $output .= ' class="kint-highlight"';
         }
         $output .= ' data-kint-source-line="' . sprintf($format, $line_number) . '">';
         $output .= Kint_Object_Blob::escape($line) . '</div>';
     }
     if ($output) {
         return '<pre class="kint-source">' . $output . '</pre>';
     }
 }
Exemple #8
0
 public function render($o)
 {
     $children = $this->renderer->renderChildren($o);
     if (!$o instanceof Kint_Object_TraceFrame) {
         $header = Kint_Renderer_Rich::renderHeader($o);
     } else {
         if (!empty($o->trace['file']) && !empty($o->trace['line'])) {
             $header = '<var>' . Kint_Object_Blob::escape(Kint::shortenPath($o->trace['file'])) . ':' . (int) $o->trace['line'] . '</var> ';
         } else {
             $header = '<var>PHP internal call</var> ';
         }
         if ($o->trace['class']) {
             $header .= Kint_Object_Blob::escape($o->trace['class'] . $o->trace['type']);
         }
         if (is_string($o->trace['function'])) {
             $function = $o->trace['function'] . '()';
         } else {
             $function = $o->trace['function']->getName() . '(' . $o->trace['function']->getParams() . ')';
         }
         $header .= '<dfn>' . Kint_Object_Blob::escape($function) . '</dfn>';
     }
     $header = Kint_Renderer_Rich::renderHeaderWrapper($o, (bool) strlen($children), $header);
     return '<dl>' . $header . $children . '</dl>';
 }
Exemple #9
0
 private static function ideLink($file, $line)
 {
     $shortenedPath = Kint_Object_Blob::escape(Kint::shortenPath($file));
     if (!Kint::$file_link_format) {
         return $shortenedPath . ':' . $line;
     }
     $ideLink = Kint::getIdeLink($file, $line);
     $class = strpos($ideLink, 'http://') === 0 ? 'class="kint-ide-link" ' : '';
     return "<a {$class}href=\"{$ideLink}\">{$shortenedPath}:{$line}</a>";
 }
Exemple #10
0
 public function render($r)
 {
     $out = '<pre><table><thead><tr><th></th>';
     $firstrow = reset($r->contents);
     if (!is_object($firstrow->value)) {
         var_dump($r);
         exit;
     }
     foreach ($firstrow->value->contents as $column => $field) {
         $out .= '<th>' . Kint_Object_Blob::escape($column) . '</th>';
     }
     $out .= '</tr></thead><tbody>';
     foreach ($r->contents as $row) {
         $out .= '<tr><th>';
         $out .= Kint_Object_Blob::escape($row->name);
         $out .= '</th>';
         foreach ($row->value->contents as $field) {
             $out .= '<td';
             $type = '';
             $size = '';
             if (($s = $field->getType()) !== null) {
                 $type = $s;
                 if (($s = $field->getSize()) !== null) {
                     $size = ' (' . $s . ')';
                 }
             }
             if ($type) {
                 $out .= ' title="' . $type . $size . '"';
             }
             $out .= '>';
             switch ($field->type) {
                 case 'boolean':
                     $out .= $field->value->contents ? '<var>true</var>' : '<var>false</var>';
                     break;
                 case 'integer':
                 case 'double':
                     $out .= (string) $field->value->contents;
                     break;
                 case 'null':
                     $out .= '<var>null</var>';
                     break;
                 case 'string':
                     $val = $field->value->contents;
                     if (Kint::$max_str_length && self::$respect_str_length && Kint_Object_Blob::strlen($val) > Kint::$max_str_length) {
                         $val = substr($val, 0, Kint::$max_str_length) . '...';
                     }
                     $out .= Kint_Object_Blob::escape($val);
                     break;
                 case 'array':
                     $out .= '<var>array</var>' . $size;
                     break;
                 case 'object':
                     $out .= '<var>' . Kint_Object_Blob::escape($field->classname) . '</var>' . $size;
                     break;
                 case 'resource':
                     $out .= '<var>resource</var>';
                     break;
                 default:
                     $out .= '<var>unknown</var>';
                     break;
             }
             if (in_array('blacklist', $field->hints)) {
                 $out .= ' <var>Blacklisted</var>';
             } elseif (in_array('recursion', $field->hints)) {
                 $out .= ' <var>Recursion</var>';
             } elseif (in_array('depth_limit', $field->hints)) {
                 $out .= ' <var>Depth Limit</var>';
             }
             $out .= '</td>';
         }
         $out .= '</tr>';
     }
     $out .= '</tbody></table></pre>';
     return $out;
 }