服务提供者
注:如果一个类没有基于任何接口那么就没有必要将其绑定到容器。请看下面反例
新增一个服务 App\Service\SMSServer
定义服务提供者
php artisan make:provider SMSServiceProvider
编辑 app/providers/SMSServiceProvider.php
use App\Services\SMSServer;
......
public function boot(){}
public function register(){
$this->app->bind('sms',function(){
return new SMSServer();
});
注册服务提供者
config/app.php 全局配置:
'providers'=>[
......
'App\Providers\SMServiceProvider',
]
使用服务
app('sms')->send("15985598789","88968为您的验证码 请尽快完成注册");
bind: 绑定一个实例,每次调用都返回一个新实例,相当每次都new一个新实例;
singleton:绑定一个单例,每次调用都返回同一个实例(第一次调用先new),相当于=一个新实现;
instance: 绑定一个已经初始化后的实例,相当于=一个实现;
服务容器 https://xueyuanjun.com/post/19434.html
laravel绑定操作bind、singleton和instance区别 http://blog.jues.org.cn/post/laravel-bang-ding-cao-zuo-bindsingleton-he-instance-qu-bie.html