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 相关文章推荐
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
php使用curl获取https请求的方法
Feb 11 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
php读取csc文件并输出
May 21 PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
PHP让网站移动访问更加友好方法
Feb 14 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 curl实现抓取302跳转后页面的示例
2014/07/04 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
js在ie下打开对话窗口的方法小结
2016/10/24 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
JavaScript实现区块链
2018/03/14 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
python利用7z批量解压rar的实现
2019/08/07 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
法学研究生自我鉴定范文
2013/12/04 职场文书
服务之星获奖感言
2014/01/21 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
回复函格式及范文
2015/07/14 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
TypeScript 内置高级类型编程示例
2022/09/23 Javascript