TrafficCophp/ByteBuffer

Node.js inspired byte stream buffer for PHP.


Keywords
stream, library, Buffer, Bytehandling, pack, wrapper, binary data, Socket
License
MIT

Documentation

PHP Library for reading and writing binary data

Build Status No Maintenance Intended

I intentionally needed that for writing a PHP Client for TrafficCop. But the source grows so I decided to move it into an own package. You can also call this a pack() wrapper.

Install

Installation should be done via composer.

{
    "require": {
        "TrafficCophp/ByteBuffer": "dev-master"
    }
}

Example

A simple usage example could look like this

<?php

require __DIR__ . '/vendor/.composer/autoload.php';

use TrafficCophp\ByteBuffer\ByteBuffer;

$channel = 'channel_one';
$message = 'php';

$buffer = new ByteBuffer(4 + 1 + 4 + strlen($channel) + strlen($message));
$buffer->writeInt32BE($buffer->length(), 0);
$buffer->writeInt8(0x1, 4);
$buffer->writeInt32BE(strlen($channel), 5);
$buffer->write($channel, 9);
$buffer->write($message, 9 + strlen($channel));

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, '127.0.0.1', 3542);

socket_write($socket, (string) $buffer, $buffer->length());

ToDo's

  • Write Documentation
  • Improve examples
  • Allow Buffer as constructor
  • Write test for concatinating buffers

License

Licensed under the MIT license.