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 相关文章推荐
文件上传程序的全部源码
Oct 09 PHP
PHP写MySQL数据 实现代码
Jun 15 PHP
PHP句法规则详解 入门学习
Nov 09 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
php中Array2xml类实现数组转化成XML实例
Dec 08 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
Yii基于数组和对象的Model查询技巧实例详解
Dec 28 PHP
基于ThinkPHP实现的日历功能实例详解
Apr 15 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
thinkphp5使html5实现动态跳转的例子
Oct 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
php实现word转html的方法
2016/01/22 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
跟老齐学Python之坑爹的字符编码
2014/09/28 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
python实现静态web服务器
2019/09/03 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
python实现查找所有程序的安装信息
2020/02/18 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
Born鞋子官网:Born Shoes
2017/04/06 全球购物
加热夹克:RAVEAN
2018/10/19 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
应聘销售主管的求职信
2014/04/26 职场文书
优秀党员先进材料
2014/12/18 职场文书
护士实习自荐信
2015/03/06 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书