Laravel 类和接口注入相关的代码


Posted in PHP onOctober 15, 2019

Laravel能够自动注入需要的依赖,对于自定义的类和接口是有些不同的。

对于类,Laravel可以自动注入,但是接口的话需要创建相应的ServiceProvider注册接口和实现类的绑定,同时需要将ServiceProvider添加到congif/app.php的providers数组中,这样容器就能知道你需要注入哪个实现。

现在自定义一个类myClass

namespace App\library;

class myClass {

 public function show() {
  echo __FUNCTION__.' Hello World';
 }
}

设置route

Route::get('test/ioc', 'TestController@index');

修改TestController

class TestController extends Controller
{
 public function index(myClass $myClass) {
  $myClass->show();
 }
}

访问http://localhost/test/ioc,能成功打印show Hello World。

修改myClass

class myClass implements like {

 public function play() {
  // TODO: Implement play() method.
  echo __FUNCTION__.' Hello Play';
 }
}

like接口

interface like {
 public function play();
}

TestController

class TestController extends Controller
{
 public function index(like $like) {
  $like->play();
 }
}

如果还是访问上面的地址,会提示错误

Target [App\library\like] is not instantiable.

对于接口注入,我们需要在对应的ServiceProvider的register方法中注册,并将对应的ServiceProvider写入config/app的providers数组中。

定义LikeServiceProvider

class LikeServiceProvider extends ServiceProvider
{
 public function boot()
 {
  //
 }
 public function register()
 {
  //
  $this->app->bind('App\library\like', 'App\library\myClass');
 }
}

之后我们需要将LikeServiceProvider添加到config\app.php文件的providers数组中。

还是继续访问上述的地址,页面成功输出play Hello Play。

以上这篇Laravel 类和接口注入相关的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP中动态显示签名和ip原理
Mar 28 PHP
PHP提取中文首字母
Apr 09 PHP
PHP 采集程序 常用函数
Dec 18 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 PHP
Laravel实现短信注册的示例代码
May 29 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
详解no input file specified 三种解决方法
Nov 29 PHP
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
Apr 16 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 #PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 #PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 #PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 #PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 #PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 #PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 #PHP
You might like
PHP静态新闻列表自动生成代码
2007/06/14 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
小程序实现密码输入框
2020/11/16 Javascript
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Python字符串中查找子串小技巧
2015/04/10 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
关于python中remove的一些坑小结
2021/01/04 Python
全球最大的在线橄榄球商店:Lovell Rugby
2018/05/20 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
销售区域经理岗位职责
2015/04/10 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
《秋思》教学反思
2016/02/23 职场文书