在 Laravel 中解析单例
在 Laravel 中,你可以将一个类注册成单例,使得解析时始终是同一个对象。
不过,你可能想创建该类的另一个实例。您可以在不通过 Laravel 容器的情况下手动构建类,但如果它有一堆依赖项,那可能会很乏味。您可以在没有Laravel容器的情况下手动构建类,但如果它有一堆依赖项,那可能会很繁杂。
使用 build
方法, Laravel 不会解析一个已经注册过的类实例,而是使用容器创建一个新的实例。
// AppServiceProvider::register()$this->app->singleton(MastodonClient::class);
// Resolve the singleton instance from the container$mastodon = resolve(MastodonClient::class);// Build a new instance$anotherMastodon = app()->build(MastodonClient::class);
当 Laravel 包将一个类注册成 singleton,但你需要另一个实例时,这可能很有用。