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; }
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); }
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>'; }
private function renderTab(Kint_Object $o, Kint_Object_Representation $rep) { if ($plugin = $this->getPlugin(self::$tab_renderers, $rep->hints)) { if (strlen($output = $plugin->render($rep))) { return $output; } } if (is_array($rep->contents)) { $output = ''; foreach ($rep->contents as $obj) { $output .= $this->render($obj); } return $output; } elseif (is_string($rep->contents)) { $show_contents = false; // If it is the value representation of a string and it's whitespace // was truncated in the header, always display the full string if ($o->type !== 'string' || $o->value !== $rep) { $show_contents = true; } elseif (preg_match('/(:?[\\r\\n\\t\\f\\v]| {2})/', $rep->contents)) { $show_contents = true; } elseif (Kint::$max_str_length && Kint_Object_Blob::strlen($rep->contents) > Kint::$max_str_length) { $show_contents = true; } if ($show_contents) { return '<pre>' . Kint_Object_Blob::escape($rep->contents) . '</pre>'; } } elseif ($rep->contents instanceof Kint_Object) { return $this->render($rep->contents); } return; }
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; }