decodelabs/atlas

简单的文件系统和IO函数

v0.12.0 2024-08-21 19:49 UTC

README

PHP from Packagist Latest Version Total Downloads GitHub Workflow Status PHPStan License

为PHP提供简单的文件系统和IO函数

Atlas提供了一个简单易用的接口来与文件系统交互。轻松读取、写入、复制和移动文件。

DecodeLabs 博客 上获取新闻和更新。

安装

通过Composer安装

composer require decodelabs/atlas

用法

导入

Atlas使用VeneerDecodeLabs\Atlas下提供统一的接口。您可以通过这个静态接口访问所有主要功能,而不会影响测试和依赖注入。

基本本地文件系统函数

有许多标准文件系统函数由FileDir对象表示。请参阅Context.phpFile/Local.phpDir/Local.php以获取完整列表。

use DecodeLabs\Atlas;

Atlas::get('/path/to/dir_or_file')
    ->copyTo('/another/path/');

Atlas::createDir('some/dir/path', 0770);

Atlas::file('my/file')
    ->renameTo('file.txt')
    ->setOwner('user');

Atlas::gzFile('my/file.gz', 'w')
    ->write('hello world')
    ->close();

目录扫描

可选过滤条件下扫描文件夹内容。将“scan”替换为“list”将返回一个数组而不是一个Generator

use DecodeLabs\Atlas;

foreach(Atlas::scan('my/dir') as $name => $fileOrDir) {
    // All files and dirs in my/dir
}

foreach(Atlas::scanDirs('my/dir') as $name => $dir) {
    // All dirs in my/dir
}

foreach(Atlas::listFilesRecursive('my/dir', function($name, $file) {
    // Return true if you want the file to be output
    return $name !== 'BadFile.php';
}) as $name => $file) {
    // All files in all dirs in my/dir
}

请参阅Fs.phpDir/Local.php以获取所有扫描选项。

通道与IO代理

寻找IO代理和通道传输接口?

这已经被移到了自己的项目Deliverance

MIME类型

寻找这里曾经使用过的MIME类型检测功能?

这已经被移到了自己的项目Typify

许可

Atlas遵循MIT许可证。有关完整的许可证文本,请参阅LICENSE