operating-system / file
Wrapper for retrieving information about files with native PHP functions
v1.1.0
2018-12-20 08:19 UTC
Requires
- php: ^7.1
- operating-system/file-time: ^1.0
- operating-system/file-type: ^1.0
- operating-system/group: ^1.0
- operating-system/permission: ^1
- operating-system/user: ^1.0
- unit/information: ^1
Requires (Dev)
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2021-03-20 13:20:17 UTC
README
Wrapper for retrieving information about local files with native PHP functions
Installation
composer require operating-system/file
Usage
Instantiate file:
use OperatingSystem\File\File; $file = new File('foo.txt');
Get file information:
// Name $file->getFilename(); // 'foo.txt' $file->getBasename(); // 'foo' $file->getExtension(); // 'txt' $file->getPath(); // '' $file->getPathWithFilename(); // 'foo.txt' $file->getRealPath(); // '/var/www/html/foo.txt' // Type $file->getType() // FileType::SOCKET | FileType::SYMBOLIC_LINK: | FileType::REGULAR_FILE | FileType::BLOCK_DEVICE | FileType::DIRECTORY | FileType::CHARACTER_DEVICE | FileType::FIFO: $file->getMode(); // 33188 $file->isSocket(); // FALSE $file->isSymbolicLink(); // FALSE $file->isFile(); // TRUE $file->isBlockDevice(); // FALSE $file->isDirectory(); // FALSE $file->isCharacterDevice(); // FALSE $file->isFifo(); // FALSE // User $file->getUser()->getName(); // 'root' $file->getUser()->getPassword(); // 'x' $file->getUser()->getUid(); // 0 $file->getUser()->getGid(); // 0 $file->getUser()->getGecos(); // 'root' $file->getUser()->getHomeDirectory(); // 'root' $file->getUser()->getShell(); // '/bin/bash' // Group $file->getGroup()->getName(); // 'root' $file->getGroup()->getPassword(); // 'x' $file->getGroup()->getMembers(); // ['root'] $file->getGroup()->getGid(); // 0 // Permission $file->getMode(); // 33188 $file->canUserRead(); // TRUE $file->canUserWrite(); // TRUE $file->canUserExecute(); // FALSE $file->canGroupRead(); // TRUE $file->canOwnerGroupWrite(); // FALSE $file->canGroupExecute(); // FALSE $file->canOthersRead(); // TRUE $file->canOthersWrite(); // FALSE $file->canOthersExecute(); // FALSE $file->hasSetUidBit(); // FALSE $file->hasSetUidBit(); // FALSE $file->hasStickyBit(); // FALSE $file->isReadable(); // TRUE $file->isWriteable(); // TRUE $file->isExecuteable(); // TRUE // Time $file->getLastAccessed()->format('d.m.Y H:i:s'); // '16.12.2018 08:00:00' $file->getLastModified()->format('d.m.Y H:i:s'); // '16.12.2018 08:00:00' $file->getLastChanged()->format('d.m.Y H:i:s'); // '16.12.2018 08:00:00' // Size $file->getSize()->format(); // '1B' $file->getSize()->format('b'); // '8b' $file->getSize()->format('kb'); // '0.008kb' $file->getSize()->format('kb', 1); // '0.0kb' $file->getSize()->format('kb', 2); // '0.01kb' $file->getSize()->format('Mb'); // '0.000008Mb' $file->getSize()->format('Gb'); // '0.000000008Gb' $file->getSize()->format('Tb'); // '0.000000000008Tb' $file->getSize()->format('Pb'); // '0.000000000000008Pb' $file->getSize()->format('B'); // '1B' $file->getSize()->format('kB'); // '0.001kB' $file->getSize()->format('MB'); // '0.000001MB' $file->getSize()->format('GB'); // '0.000000001GB' $file->getSize()->format('TB'); // '0.000000000001TB' $file->getSize()->format('PB'); // '0.000000000000001PB' $file->getSize()->get('b'); // 8 $file->getSize()->get('kb'); // 0.008 $file->getSize()->get('Mb'); // 0.000008 $file->getSize()->get('Gb'); // 0.000000008 $file->getSize()->get('Tb'); // 0.000000000008 $file->getSize()->get('Pb'); // 0.000000000000008 $file->getSize()->get('B'); // 1 $file->getSize()->get('kB'); // 0.001 $file->getSize()->get('MB'); // 0.000001 $file->getSize()->get('GB'); // 0.000000001 $file->getSize()->get('TB'); // 0.000000000001 $file->getSize()->get('PB'); // 0.000000000000001 $size = new Size('1MB'); $file->getSize()->add($size)->format(); // '1.000001MB' $file->getSize()->add($size)->format(); // '2.000001MB' $file->getSize()->add($size)->format(null, 1); // '3.0MB' $file->getSize()->subtract($size)->format(); // '2.000001MB' $file->getSize()->multiply($size)->format(null, 1); // '16.0TB' $file->getSize()->divide($size)->format(null, 1); // '2.0MB' // Others $file->getInode(); // 13245551 $file->getLinkTarget(); $file->getSplFileInfo();
Testing
$ ./vendor/bin/phpunit
License
The MIT License (MIT). Please see License File for more information.