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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
php 过滤危险html代码
Jun 29 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
Sep 10 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
php与Mysql的一些简单的操作
Feb 26 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
php文件缓存方法总结
Mar 16 PHP
Symfony查询方法实例小结
Jun 28 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
php ajax数据传输和响应方法
Aug 21 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
优化使用mysql存储session的php代码
2008/01/10 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
Vue表单实例代码
2016/09/05 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
android面试问题与答案
2016/12/27 面试题
有针对性的求职自荐信
2013/11/14 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
运动会通讯稿150字
2014/02/15 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
安全横幅标语
2014/06/09 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
蓬莱阁导游词
2015/02/04 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL