Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Latest commit

 

History

History
121 lines (80 loc) · 2.84 KB

README.md

File metadata and controls

121 lines (80 loc) · 2.84 KB

Stream

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads Dependency Status

Stream is an object oriented library for reading and writing binary streams in PHP.

Requirements

This library has the following requirements:

  • PHP 5.6+

Installation

Install Composer in your project:

$ curl -s https://getcomposer.org/installer | php

Add the package to your composer.json and install it via Composer:

$ php composer.phar require gravitymedia/stream

Usage

This is a simple usage example for character streams but is applicable for binary data streams.

require 'vendor/autoload.php';

use GravityMedia\Stream\Stream;

// create resource
$resource = fopen('php://temp', 'r+');

// create new stream object
$stream = Stream::fromResource($resource);

// write some data
$stream->write("\x63\x6f\x6e\x74\x65\x6e\x74\x73");

// seek a position
$stream->seek(4);

// print 32 bit unsigned integer
print $stream->readUInt32() . PHP_EOL;

// rewind stream
$stream->rewind();

// print the data previously written
while (!$stream->eof()) {
    print $stream->read(1);
}
print PHP_EOL;

// print position
print $stream->tell() . PHP_EOL;

// rewind stream
$stream->rewind();

// truncate random data
$stream->truncate(7);

// print the truncated data
while (!$stream->eof()) {
    print $stream->read(1);
}
print PHP_EOL;

Testing

Clone this repository, install Composer and all dependencies:

$ php composer.phar install

Run the test suite:

$ php vendor/bin/phing test

Generating documentation

Clone this repository, install Composer and all dependencies:

$ php composer.phar install

Generate the documentation to the build/docs directory:

$ php vendor/bin/phing doc

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.