ulrack / vfs
Requires
- php: ^7.2
Requires (Dev)
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2020-04-04 20:34:07 UTC
README
Ulrack VFS
Ulrack VFS 是 PHP 中的虚拟文件系统实现。它允许创建受限制的文件和目录操作类。
安装
要安装此包,请运行以下命令
composer require ulrack/vfs
使用
驱动程序
驱动程序用于连接到文件系统。此包仅包含本地文件系统的驱动程序。驱动程序基于 Ulrack\Vfs\Common\FileSystemDriverInterface 构建。
Ulrack\Vfs\Component\Driver\LocalFileSystemDriver
此实现作为 Ulrack\Vfs\Component\FileSystem\LocalFileSystem 的工厂。一个示例实现如下
use Ulrack\Vfs\Driver\LocalFileSystemDriver; $driver = new LocalFileSystemDriver(); $fileSystem = $driver->connect(__DIR__ . '/tests/test-filesystem');
这将产生一个只限于目录 ulrack/vfs/test/test-filesystem 的文件系统。
文件系统
文件系统基于 Ulrack\Vfs\Common\FileSystemInterface。文件系统提供 PHP 对文件和目录操作的基本功能,但基于接口。这简化了更改文件和目录的源。
Ulrack\Vfs\Component\FileSystem\LocalFileSystem
此类实现了操作受限制的本地文件系统的功能。建议通过 LocalFileSystemDriver 创建此类的实例,但也可以不使用它。
use Ulrack\Vfs\FileSystem\LocalFileSystem; $filesystem = new LocalFileSystem(__DIR__ . '/tests/test-filesystem');
文件
此包还提供了一个文件迭代器类。此迭代器基于 Ulrack\Vfs\Common\FileInterface 构建。
Ulrack\Vfs\Component\File\File
此类是 FileInterface 的实现。它在一个文件上公开迭代器和 ArrayAccess 功能。
文件可以以两种不同的模式打开。
MODE_CHUNK
此模式在预定的尺寸块中迭代文件。写操作完全覆盖一个块(即使大小不同)。在此模式中,块的大小决定了要读取的字节数。
MODE_LINE
此模式按行迭代文件(使用 PHP_EOL)。写操作完全覆盖定义位置上的行。在此模式中,块的大小决定了行可以有的最大字节数。
可以通过调用 getFileIterable 从 LocalFileSystem 创建 File 类。要创建一个实例,以 r+ 模式打开文件,并将资源、所需的模式和块大小传递给构造函数
use Ulrack\Vfs\Common\FileInterface; use Ulrack\Vfs\File\File; $fileResource = fopen(__DIR__ . '/tests/test-filesystem/foo.txt'); $fileIterable = new File($fileResource, FileInterface::MODE_LINE);
然后可以像使用数组一样使用迭代器
// Write foo to the second line. $fileIterable[1] = 'foo'; // Outputs foo echo $fileIterable[1]; // Removes foo from the file. unset($fileIterable[1]); // Appends foo as a line to the end of the file. $fileIterable[] = 'foo'; // Will output the line and line number for every line in the file. foreach ($fileIterable as $key => $line) { echo sprintf('Line %d says: %s', $key + 1, $line); }
变更日志
请参阅CHANGELOG,获取关于最近更改的更多信息。
贡献
请参阅CONTRIBUTING和CODE_OF_CONDUCT,了解详细信息。
MIT许可协议
版权所有 (c) 2019 GrizzIT
在此特此免费许可,任何人获得本软件及其相关文档文件(“软件”)的副本,可以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许获得软件的个人进行此类操作,但必须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的还是法定的,包括但不限于适销性、适用于特定目的和不受侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任是基于合同、侵权或其他原因,以及该软件或其使用或其他处置方式。