laravel服务提供者应用场景(Laravel如何创建服务器提供者实例代码)
类别:编程学习 浏览量:680
时间:2022-03-31 00:33:16 laravel服务提供者应用场景
Laravel如何创建服务器提供者实例代码前言
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' ); } |
其结果也是一样的。
参考文章:
- https://laravelacademy.org/post/796.html
- https://laravelacademy.org/post/93.html
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。
原文链接:http://blog.hellopython.wang/laravel-serviceprovider/
您可能感兴趣
- 看懂云服务器带宽大小的区别(云服务器的流量与带宽是如何换算?)
- 阿里云服务器购买时考虑的因素(购买阿里云服务器后的基本安全配置)
- linux服务器安装宝塔(linux宝塔面板安装Zabbix监控服务器资源使用状态)
- 有固定ip怎样设置云服务器(云服务器换ip难不难?云服务器换IP的步骤)
- 搭建web服务器与设置(怎样在Win7系统中搭建Web服务器)
- 云服务器怎么加数据盘(云服务器的硬盘模式、类型介绍)
- web服务器架设和管理(浅谈Web服务器的安装与配置)
- 云服务器性能怎么判断(云服务器的负载能力怎么样)
- vmwareftp怎么用(Windows Azure VM上配置FTP服务器)
- dedecms本地搭建(DEDECMS图文分离存放在另一个服务器实现方法)
- 云服务器安全保障(云服务器怎么保证信息安全?)
- ftp服务器怎么搭建和配置(如何搭建FTP服务器)
- 如何通过广域网访问ftp服务器(Serv-u 外网访问内网的FTP服务器实现方法)
- 怎么查看云服务器的配置(云服务器配置参数如何选择)
- nginx反向代理及原理(传说中的反向代理,Nginx+Apache软件配置Web服务器)
- 云服务器怎么设置端口映射(云服务器怎么修改远程端口)
- 九月初,爱如蜜糖,甜到心扉,迷恋彼此,一日不见兮,思之若狂(九月初爱如蜜糖)
- ()
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
热门推荐
- nginx服务器怎么屏蔽爬虫(nginx 防盗链防爬虫配置详解)
- docker配置阿里云镜像(Docker镜像的制作,上传,拉取和部署操作利用阿里云)
- php中如何使用缓存(PHP使用OB缓存实现静态化功能示例)
- reactnative零基础入门到项目实战(用React Native制作一个简单的游戏引擎)
- 改变Visual Studio的主题
- Get和Post的区别
- flashfxp使用视频教程(FlashFXP 命令行参数)
- 织梦的powerbydedecms怎么改(织梦DEDECMS提示信息提示框美化)
- SQL Server锁类型
- linux中dir命令怎么用(Linux sar命令使用方法及代码实例解析)