12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- class Kint_Objects_SplFileInfo extends KintObject
- {
- public function parse( & $variable )
- {
- if ( !KINT_PHP53 || !is_object( $variable ) || !$variable instanceof SplFileInfo ) return false;
- $this->name = 'SplFileInfo';
- $this->value = $variable->getBasename();
- $flags = array();
- $perms = $variable->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 & 0x0100 ) ? 'r' : '-' );
- $flags[] = ( ( $perms & 0x0080 ) ? 'w' : '-' );
- $flags[] = ( ( $perms & 0x0040 ) ? ( ( $perms & 0x0800 ) ? 's' : 'x' ) : ( ( $perms & 0x0800 ) ? 'S' : '-' ) );
- // group
- $flags[] = ( ( $perms & 0x0020 ) ? 'r' : '-' );
- $flags[] = ( ( $perms & 0x0010 ) ? 'w' : '-' );
- $flags[] = ( ( $perms & 0x0008 ) ? ( ( $perms & 0x0400 ) ? 's' : 'x' ) : ( ( $perms & 0x0400 ) ? 'S' : '-' ) );
- // world
- $flags[] = ( ( $perms & 0x0004 ) ? 'r' : '-' );
- $flags[] = ( ( $perms & 0x0002 ) ? 'w' : '-' );
- $flags[] = ( ( $perms & 0x0001 ) ? ( ( $perms & 0x0200 ) ? 't' : 'x' ) : ( ( $perms & 0x0200 ) ? 'T' : '-' ) );
- $size = sprintf( '%.2fK', $variable->getSize() / 1024 );
- $flags = implode( $flags );
- $path = $variable->getRealPath();
- return array(
- 'File information' => array(
- 'Full path' => $path,
- 'Type' => $type,
- 'Size' => $size,
- 'Flags' => $flags
- )
- );
- }
- }
|