/** * Constructor. * * Creates a token substream from a file. * * @param string $fileName File name * @throws \TokenReflection\Exception\StreamException If the file does not exist or is not readable. */ public function __construct($fileName) { parent::__construct(); $this->fileName = Broker::getRealPath($fileName); if (false === $this->fileName) { throw new Exception\StreamException($this, 'File does not exist.', Exception\StreamException::DOES_NOT_EXIST); } $contents = @file_get_contents($this->fileName); if (false === $contents) { throw new Exception\StreamException($this, 'File is not readable.', Exception\StreamException::NOT_READABLE); } $this->processSource($contents); }