code: public function stream_read($count)
      {
          if (!$this->handle) {
              return false;
          }
          self::restorePrev();
          $buffer = \fread($this->handle, $count);
          $bufferLen = \strlen($buffer);
          $backtrace = \debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
          $isRequire = !\in_array($backtrace[1]['function'], array('file_get_contents'));
          if (!$this->declaredTicks && $isRequire) {
              foreach (self::$pathsExclude as $excludePath) {
                  if (\strpos($this->filepath, $excludePath.DIRECTORY_SEPARATOR) === 0) {
                      $this->declaredTicks = true;
                  }
              }
          }
          if (!$this->declaredTicks && $isRequire) {
              // insert declare(ticks=1);  without adding any new lines
              $buffer = \preg_replace(
                  '/^(<\?php\s*)$/m',
                  '$0 declare(ticks=1);',
                  $buffer,
                  1
              );
              $this->declaredTicks = true;
              self::$filesModified[] = $this->filepath;
          }
          $buffer = $this->bufferPrepend.$buffer;
          $bufferLenAfter = \strlen($buffer);
          $diff = $bufferLenAfter - $bufferLen;
          $this->bufferPrepend = '';
          if ($diff) {
              $this->bufferPrepend = \substr($buffer, $count);
              $buffer = \substr($buffer, 0, $count);
          }
          self::register();
          return $buffer;
      }
docs: Read from stream
  
  @param integer $count How many bytes of data from the current position should be returned.
  
  @return string
  
  @see http://php.net/manual/en/streamwrapper.stream-read.php