mirror of https://github.com/adlawson/php-vfs.git
Update Stat description and permission bits
This commit is contained in:
parent
bd72b39692
commit
8715b8b2c2
|
@ -30,7 +30,7 @@ class Directory implements NodeContainerInterface
|
|||
*/
|
||||
public function __construct(array $nodes = [])
|
||||
{
|
||||
$this->mode = self::TYPE_BLOCK & self::TYPE_DIR;
|
||||
$this->mode = self::TYPE_DIR;
|
||||
|
||||
$this->dateAccessed = new DateTime();
|
||||
$this->dateCreated = $this->dateAccessed;
|
||||
|
|
|
@ -25,7 +25,7 @@ class File implements FileInterface
|
|||
public function __construct($content = '')
|
||||
{
|
||||
$this->content = (string) $content;
|
||||
$this->mode = self::TYPE_BLOCK & self::TYPE_FILE;
|
||||
$this->mode = self::TYPE_FILE;
|
||||
|
||||
$this->dateAccessed = new DateTime();
|
||||
$this->dateCreated = clone $this->dateAccessed;
|
||||
|
|
|
@ -10,37 +10,61 @@
|
|||
namespace Vfs\Node;
|
||||
|
||||
/**
|
||||
* Mode bits for node description and permissions
|
||||
*
|
||||
* @link http://www.gnu.org/software/libc/manual/html_node/Permission-Bits.html
|
||||
* @link http://man7.org/linux/man-pages/man2/stat.2.html
|
||||
*/
|
||||
interface StatInterface
|
||||
{
|
||||
const S_IFMT = 0170000;
|
||||
const S_IFLNK = 0120000;
|
||||
const S_IFREG = 0100000;
|
||||
const S_IFDIR = 0040000;
|
||||
const S_IRUSR = 0000400;
|
||||
const S_IWUSR = 0000200;
|
||||
const S_IXUSR = 0000100;
|
||||
const S_IRGRP = 0000040;
|
||||
const S_IWGRP = 0000020;
|
||||
const S_IXGRP = 0000010;
|
||||
const S_IROTH = 0000004;
|
||||
const S_IWOTH = 0000002;
|
||||
const S_IXOTH = 0000001;
|
||||
const S_IFMT = 0170000;
|
||||
const S_IFSOCK = 0140000;
|
||||
const S_IFLNK = 0120000;
|
||||
const S_IFREG = 0100000;
|
||||
const S_IFBLK = 0060000;
|
||||
const S_IFDIR = 0040000;
|
||||
const S_IFCHR = 0020000;
|
||||
const S_IFIFO = 0010000;
|
||||
const S_ISUID = 0004000;
|
||||
const S_ISGID = 0002000;
|
||||
const S_ISVTX = 0001000;
|
||||
const S_IRWXU = 0000700;
|
||||
const S_IRUSR = 0000400;
|
||||
const S_IWUSR = 0000200;
|
||||
const S_IXUSR = 0000100;
|
||||
const S_IRWXG = 0000070;
|
||||
const S_IRGRP = 0000040;
|
||||
const S_IWGRP = 0000020;
|
||||
const S_IXGRP = 0000010;
|
||||
const S_IRWXO = 0000007;
|
||||
const S_IROTH = 0000004;
|
||||
const S_IWOTH = 0000002;
|
||||
const S_IXOTH = 0000001;
|
||||
|
||||
const TYPE_SOCKET = self::S_IFMT & self::S_IFSOCK;
|
||||
const TYPE_LINK = self::S_IFMT & self::S_IFLNK;
|
||||
const TYPE_FILE = self::S_IFMT & self::S_IFREG;
|
||||
const TYPE_DIR = self::S_IFMT & self::S_IFDIR;
|
||||
const TYPE_PIPE = self::S_IFMT & self::S_IFIFO;
|
||||
const DEV_BLOCK = self::S_IFMT & self::S_IFBLK;
|
||||
const DEV_CHAR = self::S_IFMT & self::S_IFCHR;
|
||||
|
||||
const SET_GROUP = self::S_ISGID;
|
||||
const SET_USER = self::S_ISUID;
|
||||
const SET_STICKY = self::S_ISVTX;
|
||||
|
||||
const GROUP_EXEC = self::S_IXGRP;
|
||||
const GROUP_FULL = self::S_IRWXG;
|
||||
const GROUP_WRITE = self::S_IWGRP;
|
||||
const GROUP_READ = self::S_IRGRP;
|
||||
const OTHER_EXEC = self::S_IXOTH;
|
||||
const OTHER_FULL = self::S_IRWXO;
|
||||
const OTHER_WRITE = self::S_IWOTH;
|
||||
const OTHER_READ = self::S_IROTH;
|
||||
const USER_EXEC = self::S_IXUSR;
|
||||
const USER_FULL = self::S_IRWXU;
|
||||
const USER_READ = self::S_IRUSR;
|
||||
const USER_WRITE = self::S_IWUSR;
|
||||
const TYPE_BLOCK = self::S_IFMT;
|
||||
const TYPE_FILE = self::S_IFREG;
|
||||
const TYPE_DIR = self::S_IFDIR;
|
||||
const TYPE_LINK = self::S_IFLNK;
|
||||
|
||||
/**
|
||||
* @return integer
|
||||
|
|
|
@ -120,7 +120,7 @@ class DirectoryTest extends UnitTestCase
|
|||
{
|
||||
$dir = new Directory();
|
||||
|
||||
$this->assertEquals(0170000 & 0040000, $dir->getMode());
|
||||
$this->assertEquals(StatInterface::TYPE_DIR, $dir->getMode() & StatInterface::S_IFMT);
|
||||
}
|
||||
|
||||
public function testGetSize()
|
||||
|
|
|
@ -54,7 +54,7 @@ class FileTest extends UnitTestCase
|
|||
{
|
||||
$file = new File();
|
||||
|
||||
$this->assertEquals(0170000 & 0100000, $file->getMode());
|
||||
$this->assertEquals(StatInterface::TYPE_FILE, $file->getMode() & StatInterface::S_IFMT);
|
||||
}
|
||||
|
||||
public function testGetSize()
|
||||
|
|
Loading…
Reference in New Issue