服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - PHP教程 - Laravel 类和接口注入相关的代码

Laravel 类和接口注入相关的代码

2021-09-03 16:24_laomei PHP教程

今天小编就为大家分享一篇Laravel 类和接口注入相关的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Laravel能够自动注入需要的依赖,对于自定义的类和接口是有些不同的。

对于类,Laravel可以自动注入,但是接口的话需要创建相应的ServiceProvider注册接口和实现类的绑定,同时需要将ServiceProvider添加到congif/app.php的providers数组中,这样容器就能知道你需要注入哪个实现。

现在自定义一个类myClass

namespace App\library;

?
1
2
3
4
5
6
class myClass {
 
 public function show() {
  echo __FUNCTION__.' Hello World';
 }
}

设置route

?
1
Route::get('test/ioc', 'TestController@index');

修改TestController

?
1
2
3
4
5
6
class TestController extends Controller
{
 public function index(myClass $myClass) {
  $myClass->show();
 }
}

访问http://localhost/test/ioc,能成功打印show Hello World。

修改myClass

?
1
2
3
4
5
6
7
class myClass implements like {
 
 public function play() {
  // TODO: Implement play() method.
  echo __FUNCTION__.' Hello Play';
 }
}

like接口

?
1
2
3
interface like {
 public function play();
}

TestController

?
1
2
3
4
5
6
class TestController extends Controller
{
 public function index(like $like) {
  $like->play();
 }
}

如果还是访问上面的地址,会提示错误

?
1
Target [App\library\like] is not instantiable.

对于接口注入,我们需要在对应的ServiceProvider的register方法中注册,并将对应的ServiceProvider写入config/app的providers数组中。

定义LikeServiceProvider

?
1
2
3
4
5
6
7
8
9
10
11
12
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

延伸 · 阅读

精彩推荐
  • PHP教程微信公众平台开发之天气预报功能

    微信公众平台开发之天气预报功能

    这一篇文章将对大家每天都会关心的天气查询进行开发,例如,用户发送消息 “黄冈天气”,则会返回黄冈实时天气状况,以及未来两天甚至未来五天的天...

    PHP教程网3322020-11-18
  • PHP教程laravel框架 api自定义全局异常处理方法

    laravel框架 api自定义全局异常处理方法

    今天小编就为大家分享一篇laravel框架 api自定义全局异常处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Miss_shy5602021-08-31
  • PHP教程php实现的zip文件内容比较类

    php实现的zip文件内容比较类

    这篇文章主要介绍了php实现的zip文件内容比较类及其用法,可实现比较两个zip文件的内容,返回新增、删除、及相同的文件列表,是非常实用的技巧,需要的朋友...

    PHP教程网3502020-07-29
  • PHP教程PHP获取当前文件的父目录方法汇总

    PHP获取当前文件的父目录方法汇总

    本文给大家汇总介绍了使用PHP获取当前文件所在目录的父目录的路径的2种方法,并附上php获取路径和目录的相关函数,有需要的小伙伴可以参考下...

    PHP教程网6762021-02-07
  • PHP教程thinkphp普通查询与表达式查询实例分析

    thinkphp普通查询与表达式查询实例分析

    这篇文章主要介绍了thinkphp普通查询与表达式查询,以实例形式较为详细的分析了thinkphp中的普通查询与表达式查询具体用法,包含普通查询的字符串方式与数...

    PHP教程网2162020-08-17
  • PHP教程Smarty模板变量与调节器实例详解

    Smarty模板变量与调节器实例详解

    这篇文章主要介绍了Smarty模板变量与调节器,结合实例形式详细分析了Smarty模板变量与调节器基本概念、分类、使用方法及相关操作注意事项,需要的朋友可...

    Sams-ara8332021-08-09
  • PHP教程Yii快速入门经典教程

    Yii快速入门经典教程

    这篇文章主要介绍了Yii快速入门经典教程,结合实例形式较为详细的分析了Yii开发的基本概念,原理,使用技巧与相关注意事项,需要的朋友可以参考下 ...

    zm27142862020-12-11
  • PHP教程PHP里面把16进制的图片数据显示在html的img标签上(实现方法)

    PHP里面把16进制的图片数据显示在html的img标签上(实现方法)

    下面小编就为大家带来一篇PHP里面把16进制的图片数据显示在html的img标签上(实现方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起...

    PHP教程网9612021-05-13