You are here

class Kint_Parsers_FsPath in Devel 8.2

Same name and namespace in other branches
  1. 8 kint/kint/parsers/custom/fspath.php \Kint_Parsers_FsPath

Hierarchy

Expanded class hierarchy of Kint_Parsers_FsPath

File

kint/kint/parsers/custom/fspath.php, line 3

View source
class Kint_Parsers_FsPath extends kintParser {
  protected function _parse(&$variable) {
    if (!KINT_PHP53 || !is_string($variable) || strlen($variable) > 2048 || preg_match('[[:?<>"*|]]', $variable) || !@is_readable($variable)) {
      return false;
    }
    try {
      $fileInfo = new SplFileInfo($variable);
      $flags = array();
      $perms = $fileInfo
        ->getPerms();
      if (($perms & 0xc000) === 0xc000) {
        $type = 'File socket';
        $flags[] = 's';
      }
      elseif (($perms & 0xa000) === 0xa000) {
        $type = 'File symlink';
        $flags[] = 'l';
      }
      elseif (($perms & 0x8000) === 0x8000) {
        $type = 'File';
        $flags[] = '-';
      }
      elseif (($perms & 0x6000) === 0x6000) {
        $type = 'Block special file';
        $flags[] = 'b';
      }
      elseif (($perms & 0x4000) === 0x4000) {
        $type = 'Directory';
        $flags[] = 'd';
      }
      elseif (($perms & 0x2000) === 0x2000) {
        $type = 'Character special file';
        $flags[] = 'c';
      }
      elseif (($perms & 0x1000) === 0x1000) {
        $type = 'FIFO pipe file';
        $flags[] = 'p';
      }
      else {
        $type = 'Unknown file';
        $flags[] = 'u';
      }

      // owner
      $flags[] = $perms & 0x100 ? 'r' : '-';
      $flags[] = $perms & 0x80 ? 'w' : '-';
      $flags[] = $perms & 0x40 ? $perms & 0x800 ? 's' : 'x' : ($perms & 0x800 ? 'S' : '-');

      // group
      $flags[] = $perms & 0x20 ? 'r' : '-';
      $flags[] = $perms & 0x10 ? 'w' : '-';
      $flags[] = $perms & 0x8 ? $perms & 0x400 ? 's' : 'x' : ($perms & 0x400 ? 'S' : '-');

      // world
      $flags[] = $perms & 0x4 ? 'r' : '-';
      $flags[] = $perms & 0x2 ? 'w' : '-';
      $flags[] = $perms & 0x1 ? $perms & 0x200 ? 't' : 'x' : ($perms & 0x200 ? 'T' : '-');
      $this->type = $type;
      $this->size = sprintf('%.2fK', $fileInfo
        ->getSize() / 1024);
      $this->value = implode($flags);
    } catch (Exception $e) {
      return false;
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
kintParser::$_customDataTypes private static property
kintParser::$_dealingWithGlobals private static property
kintParser::$_level private static property
kintParser::$_marker private static property
kintParser::$_objectParsers private static property
kintParser::$_objects private static property
kintParser::$_placeFullStringInValue private static property
kintParser::$_skipAlternatives private static property
kintParser::escape public static function
kintParser::factory final public static function * the only public entry point to return a parsed representation of a variable * * @static * *
kintParser::reset public static function
kintParser::_checkDepth private static function
kintParser::_decorateCell private static function
kintParser::_init private static function
kintParser::_isArrayTabular private static function
kintParser::_parse_array private static function
kintParser::_parse_boolean private static function
kintParser::_parse_double private static function
kintParser::_parse_integer private static function
kintParser::_parse_null private static function
kintParser::_parse_object private static function
kintParser::_parse_resource private static function
kintParser::_parse_string private static function
kintParser::_parse_unknown private static function
kintVariableData::$access public property @var string
kintVariableData::$extendedValue public property * * the array is a separate possible representation of the dumped var
kintVariableData::$name public property @var string
kintVariableData::$operator public property @var string
kintVariableData::$size public property @var int
kintVariableData::$type public property @var string
kintVariableData::$value public property @var string inline value
kintVariableData::$_alternatives public property @var kintVariableData[] array of alternative representations for same variable, don't use in custom parsers
kintVariableData::$_supportedCharsets private static property
kintVariableData::_detectEncoding protected static function
kintVariableData::_isSequential protected static function * returns whether the array: * 1) is numeric and * 2) in sequence starting from zero * *
kintVariableData::_strlen protected static function
kintVariableData::_substr protected static function
Kint_Parsers_FsPath::_parse protected function * main and usually single method a custom parser must implement * * Overrides kintParser::_parse