willwashburn / stream
model a sequence of data elements made available over time
Installs: 883 730
Dependents: 2
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.4.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-10-23 11:04:15 UTC
README
model a sequence of data elements made available over time
Usage
Write and read (or peek) from a string of characters.
$stream = new \WillWashburn\Stream\Stream(); $stream->write('foo'); $stream->read(3); //foo $stream->write('bar'); $stream->write('bang'); $stream->read(4); // barb $stream->peek(3); // ang $stream->read(3); // ang
I mostly use this when buffering responses from curl requests.
$stream = new WillWashburn\Stream\Stream; curl_setopt($ch, CURLOPT_WRITEFUNCTION, function ($ch, $str) use (& $stream, $url) { $stream->write($str); try { // do something with the stream $characters = $stream->read(100); // tell curl to stop the transfer when we find what we're looking for if(strpos($characters,'string im looking for') !==false) { return -1; } } catch (StreamBufferTooSmallException $e) { // The buffer ended, so keep getting more return strlen($str); } // We return -1 to abort the transfer when we have enough buffered return -1; });
Installation
Use composer
composer require willwashburn/stream
Alternatively, add "willwashburn/stream": "~1.0.0"
to your composer.json
Change Log
- v1.0.0 - Basic stream model