发布于 5年前

如何检测当前运行环境是 Laravel 还是 Lumen 框架?

如果你编写的扩展需要支持 Lumen 和 Laravel 的话,以下方法可以用来区分不同环境。

你的 ServiceProvider 里区分不同环境来加载不同的配置信息:

/**
 * Setup the config.
 *
 * @param \Illuminate\Contracts\Container\Container $app
 *
 * @return void
 */
protected function setupConfig(Container $app)
{
    $source = realpath(__DIR__.'/../config/bugsnag.php');

    if ($app instanceof LaravelApplication && $app->runningInConsole()) {
        $this->publishes([$source => config_path('bugsnag.php')]);
    } elseif ($app instanceof LumenApplication) {
        $app->configure('bugsnag');
    }

    $this->mergeConfigFrom($source, 'bugsnag');
}

或者:

$app = app();
if ($app instanceof LaravelApplication) {
    // Laravel
} elseif ($app instanceof LumenApplication) {
    // Lumen
}
©2020 edoou.com   京ICP备16001874号-3