예제 #1
0
파일: Parser.php 프로젝트: jnvsor/kint
 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;
 }
예제 #2
0
파일: Method.php 프로젝트: jnvsor/kint
 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);
 }
예제 #3
0
파일: Callable.php 프로젝트: jnvsor/kint
 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>';
 }
예제 #4
0
파일: Rich.php 프로젝트: jnvsor/kint
 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;
 }
예제 #5
0
파일: Table.php 프로젝트: jnvsor/kint
 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;
 }