chevere/writer

Tooling for writing to streams

1.0.2 2024-06-05 21:49 UTC

This package is auto-updated.

Last update: 2024-11-14 15:01:45 UTC


README

Chevere

Build Code size Apache-2.0 PHPStan Mutation testing badge

Quality Gate Status Maintainability Rating Reliability Rating Security Rating Coverage Technical Debt CodeFactor

Summary

Writer provides tooling for writing to streams.

Installing

Writer is available through Packagist and the repository source is at chevere/writer.

composer require chevere/writer

Streams

Stream for

Use function streamFor to create an stream.

use function Chevere\Writer\streamFor;

$stream = streamFor(
    stream: 'php://temp',
    mode: 'r+'
);

Stream temp

Use function streamTemp to create a temp stream (rw+).

use function Chevere\Writer\streamTemp;

$stream = streamTemp($content);

StreamWriter

Use StreamWriter to write strings to a stream.

use Chevere\Writer\StreamWriter;
use function Chevere\Writer\streamFor;

$stream = streamFor('php://output', 'r');
$writer = new StreamWriter($stream);
$writer->write('Hello, world!');

NullWriter

Use NullWriter when requiring null write override.

Writers

Use Writers to interact with pre-defined streams for output, error, debug and log. By default only output and error streams are defined.

use Chevere\Writer\Writers;

$writers = new Writers();
$writers->error();
$writers->debug();
$writers->log();

Output stream

Use output to interact with the output stream. Use withOutput to set a custom output stream.

$with = $writers->withOutput($stream);
$with->output(); // $stream

Error stream

Use error to interact with the error stream. Use withError to set a custom error stream.

$with = $writers->withError($stream);
$with->error(); // $stream

Debug stream

Use debug to interact with the debug stream. Use withDebug to set a custom debug stream.

$with = $writers->withDebug($stream);
$with->debug(); // $stream

Log stream

Use log to interact with the log stream. Use withLog to set a custom log stream.

$with = $writers->withLog($stream);
$with->log(); // $stream

Documentation

Documentation is available at chevere.org.

License

Copyright Rodolfo Berrios A.

Chevere is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.