沙滩星空的博客沙滩星空的博客

Laravel服务容器和服务提供者

服务提供者

注:如果一个类没有基于任何接口那么就没有必要将其绑定到容器。请看下面反例

新增一个服务 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

未经允许不得转载:沙滩星空的博客 » Laravel服务容器和服务提供者

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址