NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Interface StreamInterface

OO interface to PHP streams

### Direct known implementers

`Guzzle\Http\EntityBodyInterface`, `Guzzle\Stream\Stream`

### Indirect known implementers

`Guzzle\Http\AbstractEntityBodyDecorator`, `Guzzle\Http\CachingEntityBody`, `Guzzle\Http\EntityBody`, `Guzzle\Http\IoEmittingEntityBody`, `Guzzle\Http\ReadLimitEntityBody`

Namespace: Guzzle\Stream
Located at Guzzle/Stream/StreamInterface.php

## Methods summary

- `public` `__toString ( )`

  Convert the stream to a string if the stream is readable and the stream is seekable.

- `public` `close ( )`

  Close the underlying stream

- `public` `getMetaData ( string $key = null )`

  Get stream metadata

- `public` `getStream ( )`

  Get the stream resource

- `public` `setStream ( resource $stream, int $size = null )`

  Set the stream that is wrapped by the object

- `public` `detachStream ( )`

  Detach the current stream resource

- `public` `getWrapper ( )`

  Get the stream wrapper type

- `public` `getWrapperData ( )`

  Wrapper specific data attached to this stream.

- `public` `getStreamType ( )`

  Get a label describing the underlying implementation of the stream

- `public` `getUri ( )`

  Get the URI/filename associated with this stream

- `public` `getSize ( )`

  Get the size of the stream if able

- `public` `isReadable ( )`

  Check if the stream is readable

- `public` `isRepeatable ( )`

  Check if the stream is repeatable

- `public` `isWritable ( )`

  Check if the stream is writable

- `public` `isConsumed ( )`

  Check if the stream has been consumed

- `public` `feof ( )`

  Alias of isConsumed

- `public` `isLocal ( )`

  Check if the stream is a local stream vs a remote stream

- `public` `isSeekable ( )`

  Check if the string is repeatable

- `public` `setSize ( int $size )`

  Specify the size of the stream in bytes

- `public` `seek ( int $offset, int $whence = SEEK_SET )`

  Seek to a position in the stream

- `public` `read ( int $length )`

  Read data from the stream

- `public` `write ( string $string )`

  Write data to the stream

- `public` `ftell ( )`

  Returns the current position of the file read/write pointer

- `public` `rewind ( )`

  Rewind to the beginning of the stream

- `public` `readLine ( int $maxLength = null )`

  Read a line from the stream up to the maximum allowed buffer length

- `public` `setCustomData ( string $key, mixed $value )`

  Set custom data on the stream

- `public` `getCustomData ( string $key )`

  Get custom data from the stream

## Methods detail

# `public string`
`__toString( )`

Convert the stream to a string if the stream is readable and the stream is seekable.

#### Returns

`string`
# `public`
`close( )`

Close the underlying stream

# `public array|mixed|null`
`getMetaData( string $key = null )`

Get stream metadata

#### Parameters

$key
  `string`
  $key Specific metadata to retrieve

#### Returns

`array|mixed|null`
# `public resource`
`getStream( )`

Get the stream resource

#### Returns

`resource`
# `public `Guzzle\Stream\StreamInterface``
`setStream( resource $stream, integer $size = null )`

Set the stream that is wrapped by the object

#### Parameters

$stream
  `resource`
  $stream Stream resource to wrap
$size
  `integer`
  $size Size of the stream in bytes. Only pass if the size cannot be obtained from the stream.

#### Returns

``Guzzle\Stream\StreamInterface``
# `public `Guzzle\Stream\StreamInterface``
`detachStream( )`

Detach the current stream resource

#### Returns

``Guzzle\Stream\StreamInterface``
# `public string`
`getWrapper( )`

Get the stream wrapper type

#### Returns

`string`
# `public array`
`getWrapperData( )`

Wrapper specific data attached to this stream.

#### Returns

`array`
# `public string`
`getStreamType( )`

Get a label describing the underlying implementation of the stream

#### Returns

`string`
# `public string`
`getUri( )`

Get the URI/filename associated with this stream

#### Returns

`string`
# `public integer|boolean`
`getSize( )`

Get the size of the stream if able

#### Returns

`integer|boolean`
# `public boolean`
`isReadable( )`

Check if the stream is readable

#### Returns

`boolean`
# `public boolean`
`isRepeatable( )`

Check if the stream is repeatable

#### Returns

`boolean`
# `public boolean`
`isWritable( )`

Check if the stream is writable

#### Returns

`boolean`
# `public boolean`
`isConsumed( )`

Check if the stream has been consumed

#### Returns

`boolean`
# `public boolean`
`feof( )`

Alias of isConsumed

#### Returns

`boolean`
# `public boolean`
`isLocal( )`

Check if the stream is a local stream vs a remote stream

#### Returns

`boolean`
# `public boolean`
`isSeekable( )`

Check if the string is repeatable

#### Returns

`boolean`
# `public `Guzzle\Stream\StreamInterface``
`setSize( integer $size )`

Specify the size of the stream in bytes

#### Parameters

$size
  `integer`
  $size Size of the stream contents in bytes

#### Returns

``Guzzle\Stream\StreamInterface``
# `public boolean`
`seek( integer $offset, integer $whence = SEEK_SET )`

Seek to a position in the stream

#### Parameters

$offset
  `integer`
  $offset Stream offset
$whence
  `integer`
  $whence Where the offset is applied

#### Returns

`boolean`
Returns TRUE on success or FALSE on failure

#### Link

http://www.php.net/manual/en/function.fseek.php
# `public string|boolean`
`read( integer $length )`

Read data from the stream

#### Parameters

$length
  `integer`
  $length Up to length number of bytes read.

#### Returns

`string|boolean`
Returns the data read from the stream or FALSE on failure or EOF
# `public integer|boolean`
`write( string $string )`

Write data to the stream

#### Parameters

$string
  `string`
  $string The string that is to be written.

#### Returns

`integer|boolean`
Returns the number of bytes written to the stream on success or FALSE on failure.
# `public integer|boolean`
`ftell( )`

Returns the current position of the file read/write pointer

#### Returns

`integer|boolean`
Returns the position of the file pointer or false on error
# `public boolean`
`rewind( )`

Rewind to the beginning of the stream

#### Returns

`boolean`
Returns true on success or false on failure
# `public string|boolean`
`readLine( integer $maxLength = null )`

Read a line from the stream up to the maximum allowed buffer length

#### Parameters

$maxLength
  `integer`
  $maxLength Maximum buffer length

#### Returns

`string|boolean`
# `public `Guzzle\Stream\StreamInterface``
`setCustomData( string $key, mixed $value )`

Set custom data on the stream

#### Parameters

$key
  `string`
  $key Key to set
$value
  `mixed`
  $value Value to set

#### Returns

``Guzzle\Stream\StreamInterface``
# `public null|mixed`
`getCustomData( string $key )`

Get custom data from the stream

#### Parameters

$key
  `string`
  $key Key to retrieve

#### Returns

`null|mixed`

### Magic methods summary