Laravel如何创建服务器提供者实例代码


Posted in PHP onApril 15, 2019

前言

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
PHP自带函数给数字或字符串自动补齐位数
Jul 29 PHP
Yii快速入门经典教程
Dec 28 PHP
php parse_str() 函数的定义和用法
May 23 PHP
laravel自定义分页效果
Jul 23 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 #PHP
php xhprof使用实例详解
Apr 15 #PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
Apr 15 #PHP
vmware linux系统安装最新的php7图解
Apr 14 #PHP
php7新特性的理解和比较总结
Apr 14 #PHP
PHP7新功能总结
Apr 14 #PHP
PHP7内核CGI与FastCGI详解
Apr 14 #PHP
You might like
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
Python绘图实现显示中文
2019/12/04 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
中学教师自我鉴定
2014/02/07 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
党员创先争优承诺书
2014/03/26 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
乔丹名人堂演讲稿
2014/05/24 职场文书
贫困证明怎么写
2015/06/16 职场文书