-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathFilterStream.php
More file actions
55 lines (50 loc) · 1.18 KB
/
FilterStream.php
File metadata and controls
55 lines (50 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php declare(strict_types=1);
/*
* This file is part of Aplus Framework CLI Library.
*
* (c) Natan Felles <natanfelles@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Framework\CLI\Streams;
use JetBrains\PhpStorm\Pure;
/**
* Trait FilterStream.
*
* @package cli
*
* @since 2.3.1
*/
trait FilterStream
{
protected static string $contents = '';
/**
* @param resource $in
* @param resource $out
* @param int $consumed
* @param bool $closing
*
* @see https://php.net/manual/en/php-user-filter.filter.php
*
* @return int
*/
public function filter($in, $out, &$consumed, $closing) : int
{
while ($bucket = \stream_bucket_make_writeable($in)) {
static::$contents .= $bucket->data;
$consumed += $bucket->datalen;
\stream_bucket_append($out, $bucket);
}
return \PSFS_FEED_ME;
}
#[Pure]
public static function getContents() : string
{
return static::$contents;
}
public static function reset() : void
{
static::$contents = '';
}
}