You are here

LazyOpenStream.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/guzzlehttp/psr7/src/LazyOpenStream.php

Namespace

GuzzleHttp\Psr7

File

vendor/guzzlehttp/psr7/src/LazyOpenStream.php
View source
<?php

namespace GuzzleHttp\Psr7;

use Psr\Http\Message\StreamInterface;

/**
 * Lazily reads or writes to a file that is opened only after an IO operation
 * take place on the stream.
 */
class LazyOpenStream implements StreamInterface {
  use StreamDecoratorTrait;

  /** @var string File to open */
  private $filename;

  /** @var string $mode */
  private $mode;

  /**
   * @param string $filename File to lazily open
   * @param string $mode     fopen mode to use when opening the stream
   */
  public function __construct($filename, $mode) {
    $this->filename = $filename;
    $this->mode = $mode;
  }

  /**
   * Creates the underlying stream lazily when required.
   *
   * @return StreamInterface
   */
  protected function createStream() {
    return stream_for(try_fopen($this->filename, $this->mode));
  }

}

Classes

Namesort descending Description
LazyOpenStream Lazily reads or writes to a file that is opened only after an IO operation take place on the stream.