写详细代码举例说明Laravel app->make() 的用途
时间: 2023-05-31 20:07:19 浏览: 60
好的,关于 Laravel 的 app->make(),它是用来解决依赖注入的问题的,也就是通过容器来自动实例化对象并注入到需要的类中的。具体使用的场景如下:
1. 容器的构建和使用:Laravel 中的容器是通过 Illuminate\Container\Container 类实现的。我们可以通过 app()->make() 方法来获取一个容器实例,也可以通过 app() 方法来获取已经绑定的服务实例。
2. 类的自动解析:当一个类需要使用到其它类的实例时,可以通过在类的构造方法中声明需要的依赖来实现自动解析。当调用 app()->make() 方法时,容器会自动解析所需要的类,并且将实例注入到类中。
3. 实现服务提供者:在 Laravel 中,服务提供者是一个用来绑定服务到容器的类。如果将服务提供者注册到应用程序中,就可以将服务绑定到容器中,然后可以使用 app()->make() 方法来获取服务实例了。
下面是一些示例代码,用来说明 app->make() 的用途:
```php
// 注册服务提供者
app()->register(MyServiceProvider::class);
// 获取容器实例
$container = app();
// 获取服务实例
$myService = $container->make('my-service');
// 自动解析依赖
class UserController {
protected $userService;
public function __construct(UserService $userService) {
$this->userService = $userService;
}
}
// 手动绑定依赖
$container->bind('userService', function($container) {
return new UserService($container->make('userRepository'));
});
```