protected function ensureFacadeExists(string $alias): string
    {
        if (\file_exists($path = \runtime_path('facade', $alias . '.php'))) {
            return $path;
        }

        if (!\is_dir($dir = \dirname($path)) && !@\mkdir($dir) && !\is_dir($dir)) {
            throw new \RuntimeException('Temp directory permission denied');
        }

        \file_put_contents($path, $this->formatFacadeCode($alias));

        if (\function_exists('\opcache_invalidate')) {
            \opcache_invalidate($path, true);
        }

        return $path;
    }