public function stream_open($path)
    {
        $scheme = parse_url($path, PHP_URL_SCHEME);
        if (substr($scheme, -10) === '-emulation') {
            $scheme = substr($scheme, 0, -10);
        }

        $emulator = static::getEmulatorInstance($scheme, $path, $this->getContext());
        if (!$emulator) {
            return false;
        }

        $this->setEmulator($emulator);

        $this->getEmulator()->setResponseStream($this->callEmulation($this->getEmulator()->getIncomingStream()));
        $this->setResponse($this->getEmulator()->getOutgoingStream());

        return true;
    }