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 相关文章推荐
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
基于PHP遍历数组的方法汇总分析
Jun 08 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php验证session无效的解决方法
Nov 04 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
php开发微信支付获取用户地址
Oct 04 PHP
PHP实现小偷程序实例
Oct 31 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
原生js+canvas实现下雪效果
2020/08/02 Javascript
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python列表list数组array用法实例解析
2014/10/28 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python3序列化与反序列化用法实例
2015/05/26 Python
快速查询Python文档方法分享
2017/12/27 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
opencv实现简单人脸识别
2021/02/19 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
办公室文秘自我评价
2013/09/21 职场文书
教师实习期自我鉴定
2013/10/06 职场文书
人力资源专业推荐信
2013/11/29 职场文书
工程部主管岗位职责
2015/02/12 职场文书