<?php
|
|
namespace League\Flysystem\Adapter\Polyfill;
|
|
/**
|
* A helper for adapters that only handle strings to provide read streams.
|
*/
|
trait StreamedReadingTrait
|
{
|
/**
|
* Reads a file as a stream.
|
*
|
* @param string $path
|
*
|
* @return array|false
|
*
|
* @see League\Flysystem\ReadInterface::readStream()
|
*/
|
public function readStream($path)
|
{
|
if ( ! $data = $this->read($path)) {
|
return false;
|
}
|
|
$stream = fopen('php://temp', 'w+b');
|
fwrite($stream, $data['contents']);
|
rewind($stream);
|
$data['stream'] = $stream;
|
unset($data['contents']);
|
|
return $data;
|
}
|
|
/**
|
* Reads a file.
|
*
|
* @param string $path
|
*
|
* @return array|false
|
*
|
* @see League\Flysystem\ReadInterface::read()
|
*/
|
abstract public function read($path);
|
}
|