MOON
Server: Apache
System: Linux server1.studioinfinity.com.br 2.6.32-954.3.5.lve1.4.90.el6.x86_64 #1 SMP Tue Feb 21 12:26:30 UTC 2023 x86_64
User: artinside (517)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/artinside/sites.artinside.com.br/paliar/vendor/aplus/cli/src/Streams/FilterStream.php
<?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 = '';
    }
}