时间:2021-05-26
前言
Laravel服务器容器:是用于管理类依赖和执行依赖注入的工具。下面我们演示下如何创建服务器提供者,它是Laravel的核心。话不多说了,来一起看看详细的介绍吧
在app/Contracts目录下创建TestContract.php文件,其内容为:
<?php namespace App\Contracts; interface TestContract { public function callMe($controller); }在app/Services目录下创建TestService.php文件,其内容为:
<?php namespace App\Services; use App\Contracts\TestContract; class TestService implements TestContract { public function callMe($controller){ dd("Call me from TestServiceProvider in ".$controller); } }在config/app.php文件中providers中添加内容,以便进行注册:
... App\Providers\RiakServiceProvider::class,创建1个服务提供类:
php artisan make:provider RiakServiceProvider其内容为:
<?php namespace App\Providers; use App\Services\TestService; use Illuminate\Support\ServiceProvider; class RiakServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { $this->app->bind("App\Contracts\TestContract",function(){ return new TestService(); }); } }在ServiceProvider中提供了2个方法,其中register方法用于注册服务,而boot用于引导服务。
在控制器IndxController中添加如下内容:
<?php namespace App\Http\Controllers; use App; use Illuminate\Http\Request; use App\Contracts\TestContract; class IndexController extends Controller { public function __construct(TestContract $test){ $this->test = $test; } public function index(){ $this->test->callMe("IndexController"); } }访问浏览器可以得到如下的结果:
"Call me from TestServiceProvider in IndexController"
另外,还可以使用App的make方法进行调用。
public function index(){ $test = App::make('test'); $test->callMe('IndexController'); }其结果也是一样的。
参考文章:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
服务提供者创建一个名为hello-dubbo-nacos-provider的服务提供者项目POM
ImageReader对象通常由特定格式的服务提供者接口(SPI)类实例化。服务提供者类(例如ImageReaderSpi的实例)向IIORegistry注册,
Ribbon简介分布式系统中,各个微服务会部署多个实例,如何将服务消费者均匀分摊到多个服务提供者实例上,就要使用到负载均衡器Ribbon是负载均衡器,它提供了很
前言在laravel中,我们可能需要用到自己添加的类时,可以建立一个文件夹专门存放类文件,也可以使用laravel的服务提供者的方式来使用。这两者其实区别不大,
Eureka-Provider服务的提供者新建一个服务提供者项目1、导入pom文件1.8Greenwich.SR3org.springframework.boo