laravel接口请求模拟(Laravel 类和接口注入相关的代码)
类别:编程学习 浏览量:2676
时间:2021-10-05 00:09:34 laravel接口请求模拟
Laravel 类和接口注入相关的代码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 类和接口注入相关的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/sweatOtt/article/details/55059633
您可能感兴趣
- laravel查询限制输出设置(laravel 获取某个查询的查询SQL语句方法)
- phplaravel快速开发平台(laravel框架实现去掉URL中index.php的方法)
- laravel检查关联模型(Laravel 关联模型-关联新增和关联更新的方法)
- laravel事务状态(laravel dingo API返回自定义错误信息的实例)
- laravel获取数据(laravel框架添加数据,显示数据,返回成功值的方法)
- laravel查询构建器原理和使用(阿里对象存储OSS在laravel框架中的使用方法)
- laravel开发登录接口(解决laravel5中auth用户登录其他页面获取不到登录信息的问题)
- laravel视图组件(Laravel5.4框架中视图共享数据的方法详解)
- laravel框架怎么获取变量(解决laravel id非自增 模型取回为0 的问题)
- laravel如何设置默认模块(Laravel框架控制器的middleware中间件用法分析)
- laravel的api验证失败重定向(Laravel的Auth验证Token验证使用自定义Redis的例子)
- laravel队列过期时间(laravel 修改记住我功能的cookie保存时间的方法)
- laravel框架如何查询空的信息(Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法)
- laravel框架详解(laravel 5.3 单用户登录简单实现方法)
- laravel自动分解大任务(Laravel如何实现自动加载类)
- laravel查询条件数组写法(解决Laravel 使用insert插入数据,字段created_at为0000的问题)
- 《道德经》:功成不局,泰而不骄(道德经:功成不局)
- 每日一典 过江之鲫(每日一典过江之鲫)
- 红色代表什么(红色代表什么意义和象征)
- 菲律宾安全吗(菲律宾安全吗2023)
- 彩礼重要吗()
- 写信告诉我今天海是什么颜色(写信告诉我今天海是什么颜色回答)
热门推荐
- 海外云服务器的优势是什么?(海外云服务器的优势是什么?)
- Sql Server判断函数、存储过程等是否存在
- vue 怎么设置滚动条的长度(vue使用better-scroll实现横向滚动的方法实例)
- python使用django搭建简单网页(Python后台开发Django的教程详解启动)
- docker配置文件详解(Docker中搭建FastDFS文件系统多图教程)
- HttpServerUtility类的常用方法
- 学python从零基础到开发游戏(python开发游戏的前期准备)
- C# 获取磁盘空间大小
- css中设置flex布局浮动是否会生效(深入理解CSS系列之flex兼容)
- zabbix数据库解析(zabbix agent2 监控oracle数据库的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9