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怎样调用MSSQL的存储过程
Oct 09 PHP
php include的妙用,实现路径加密
Jul 29 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
新手菜鸟必读:session与cookie的区别
Aug 22 PHP
腾讯QQ微博API接口获取微博内容
Oct 30 PHP
thinkphp实现图片上传功能
Jan 13 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
PHP对XML内容进行修改和删除实例代码
Oct 26 PHP
php 生成签名及验证签名详解
Oct 26 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
PHP isset()及empty()用法区别详解
Aug 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
php gd等比例缩放压缩图片函数
2016/06/12 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
js鼠标左右键 键盘值小结
2010/06/11 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
利用python爬取软考试题之ip自动代理
2017/03/28 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python os模块简单应用示例
2019/05/23 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
python 字符串常用函数详解
2019/09/11 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
美国电视购物:QVC
2017/02/06 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
日语专业毕业生求职信
2013/12/04 职场文书
信息技术毕业生自荐信范文
2014/03/13 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
小学清明节活动总结
2014/07/04 职场文书
委托书怎样写
2014/08/30 职场文书
教师党员个人总结
2015/02/10 职场文书