sblazheev/filesystem
Composer 安装命令:
composer require sblazheev/filesystem
包简介
Asynchronous filesystem abstraction.
README 文档
README
ReactPHP's evented asynchronous, non-blocking filesystem access library.
Table of Contents
Introduction
react/filesystem is a package to power your application with asynchronous, non-blocking filesystem access. Asynchronous access is enabled by various adapters described below.
Adapters
- ChildProcessAdapter - Adapter using child processes to perform IO actions (default adapter if no extensions are installed)
- EioAdapter - Adapter using
ext-eio
Examples
Adding examples here over time.
Creating filesystem object
<?php $loop = \React\EventLoop\Factory::create(); $filesystem = \React\Filesystem\Filesystem::create($loop);
File object
<?php $loop = \React\EventLoop\Factory::create(); $filesystem = \React\Filesystem\Filesystem::create($loop); $file = $filesystem->file(__FILE__); // Returns a \React\Filesystem\Node\FileInterface compatible object
Reading files
$filesystem->getContents('test.txt')->then(function($contents) { });
Which is a convenience method for:
$filesystem->file('test.txt')->open('r')->then(function($stream) { return \React\Stream\BufferedSink::createPromise($stream); })->then(function($contents) { // ... });
Which in it's turn is a convenience method for:
$filesystem->file('test.txt')->open('r')->then(function ($stream) use ($node) { $buffer = ''; $deferred = new \React\Promise\Deferred(); $stream->on('data', function ($data) use (&$buffer) { $buffer += $data; }); $stream->on('end', function ($data) use ($stream, $deferred, &$buffer) { $stream->close(); $deferred->resolve(&$buffer); }); return $deferred->promise(); });
Writing files
Open a file for writing (w flag) and write abcde to test.txt and close it. Create it (c flag) when it doesn't exists and truncate it (t flag) when it does.
$filesystem->file('test.txt')->open('cwt')->then(function ($stream) { $stream->write('a'); $stream->write('b'); $stream->write('c'); $stream->write('d'); $stream->end('e'); });
Directory object
<?php $loop = \React\EventLoop\Factory::create(); $filesystem = \React\Filesystem\Filesystem::create($loop); $dir = $filesystem->dir(__DIR__); // Returns a \React\Filesystem\Node\DirectoryInterface compatible object
List contents
$filesystem->dir(__DIR__)->ls()->then(function (array $list) { foreach ($list as $node) { echo $node->getPath(), PHP_EOL; } });
Install
The recommended way to install this library is through Composer. New to Composer?
This will install the latest supported version:
$ composer require react/filesystem:^0.1.1
License
React/Filesystem is released under the MIT license.
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-04-24