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框架 laravel-admin上传图片到oss的方法)
- laravel数据绑定(laravel-admin表单提交隐藏一些数据,回调时获取数据的方法)
- laravel查询数据库视图(Laravel5.7 数据库操作迁移的实现方法)
- laravel设置跨域请求(解决laravel 出现ajax请求419unknown status的问题)
- laravel框架的运行机制(Laravel5框架自定义错误页面配置操作示例)
- laravel数据库关联查找(laravel 操作数据库常用函数的返回值方法)
- laravel命令大全详解(Laravel框架中缓存的使用方法分析)
- laravel怎样封装增删改查(laravel框架上传图片实现实时预览功能)
- laravel算法(laravel批量生成假数据的方法)
- laravel框架注意事项(Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决)
- laravel框架如何查询空的信息(Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法)
- laravel线上如何调试(解决Laravel 不能创建 migration 的问题)
- laravel 快速开发api技巧(Laravel5.4简单实现app接口Api Token认证方法)
- laravelblade界面(laravel5.1框架基础之Blade模板继承简单使用方法分析)
- laravel指定管理员(在laravel-admin中列表中禁止某行编辑、删除的方法)
- laravel5.7项目实战(基于Laravel 5.2 regex验证的正确写法)
- 《倚天屠龙记》再遭翻拍,关晓彤主演赵敏,蒋劲夫演张无忌,你怎么看(倚天屠龙记再遭翻拍)
- 吴启华与曾舜晞两代张无忌同框,戏里经典的他却没活出原著的潇洒(吴启华与曾舜晞两代张无忌同框)
- 经常发这三种 朋友圈 的人,要迅速屏蔽(经常发这三种朋友圈)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
- 朋友圈屏蔽你的人,可以直接看淡了(朋友圈屏蔽你的人)
- 金球奖只青睐那些会戴珠宝的女人(金球奖只青睐那些会戴珠宝的女人)
热门推荐
- php批量导出所有数据库(php快速导入大量数据的实例方法)
- 用docker搭建redis集群(docker实现redis集群搭建的方法步骤)
- sqlserver备份还原地址(SqlServer高版本数据备份还原到低版本)
- 织梦的控制层使用方法(织梦系统参数设置出现Token mismatch!提示的解决办法)
- mysql主从模式与读写分离(磁盘写满导致MySQL复制失败的解决方案)
- canvas如何调试(关于canvas.toDataURL 在iOS运行失败的问题解决)
- dedecms标签怎么调用(DedeCMS织梦后台模板列表如何按字母排序方法代码)
- mysql意外查不到数据(MySQL 丢失数据的原因及解决)
- sql server中随机函数NewID()和Rand()
- mysql常见的存储引擎(如何选择MySQL的存储引擎?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9