【发布时间】:2019-05-29 19:46:16
【问题描述】:
需要通过一个例子来了解Laravel的服务容器和服务提供者。
【问题讨论】:
标签: laravel laravel-5.7 laravel-service-container
需要通过一个例子来了解Laravel的服务容器和服务提供者。
【问题讨论】:
标签: laravel laravel-5.7 laravel-service-container
服务容器是注册服务的地方。
服务提供者通过将服务添加到容器中来提供服务。
参考 Laracast。注意了解。
服务容器:https://laracasts.com/series/laravel-from-scratch-2017/episodes/24
服务提供商:https://laracasts.com/series/laravel-from-scratch-2017/episodes/25
【讨论】:
您好,欢迎来到 stackoverflow!
服务容器是我们的应用程序bindings存储的地方。 服务提供者是我们将绑定注册到服务容器的类。在旧版本的 Laravel 中,我们没有这些提供程序,人们总是询问将绑定放在哪里。答案令人困惑。 “最有意义的地方。”!然后,Laravel 引入了这些 服务提供者 和 Providers 目录来为人们理清思路。
为了便于理解,我将包含一个基本示例:
interface AcmeInterface {
public function sayHi();
}
class AcmeImplementation implements AcmeInterface {
public function sayHi() {
echo 'Hi!';
}
}
// Service Container
$app = new \Illuminate\Database\Container;
// Some required stuff that are also service providing lines
// for app config and app itself.
$app->singleton('app', 'Illuminate\Container\Container');
$app->singleton('config', 'Illuminate\Config\Repository');
// Our Example Service Provider
$app->bind(AcmeInterface::class, AcmeImplementation::class);
// Example Usage:
$implementation = $app->make(AcmeInterface::class);
$implementation->sayHi();
如你所见;
bootstrap/app.php 中为我们完成了这个工作),config/app.php),【讨论】: