iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Laravel框架中依赖注入功能的示例分析
  • 297
分享到

Laravel框架中依赖注入功能的示例分析

2023-06-15 06:06:47 297人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Laravel框架中依赖注入功能的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概述任何时候,你在一个控制器类中请求一个依赖,这个服务容器负责:自动地在构造函数中检测依

这篇文章将为大家详细讲解有关Laravel框架中依赖注入功能的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

概述

任何时候,你在一个控制器类中请求一个依赖,这个服务容器负责:

自动地在构造函数中检测依赖关系

如果需要构建这个依赖关系

通过构造函数创建对象形成依赖关系

来看一个非常简单的例子。

<?PHPnamespace App\Http\Controllers;use App\User;use App\Repositories\UserRepository;use App\Http\Controllers\Controller;class UserController extends Controller{    protected $userRepository;    public function __construct(UserRepository $userRepository)    {        $this->userRepository = $userRepository;    }    public function show($id)    {        $user = $this->userRepository->find($id);        return view('user.profile', ['user' => $user]);    }}

假如,你有一个UserController类需要UserRepository作为一个构造函数依赖。

服务容器使用php反射类来检测,事实UserRepository需要被优先解析。

然后,它构造UserRepository实例。

然后,它构造UserController类实例。

依赖关系是如何被解析和注入的,我被很多Laravel开发人员不知道这个简单而强大的技术感到迷惑。 这是一个非常强大的技术,它可以被用来解决复杂对象的依赖关系。

如果由于某种原因,您不希望Laravel自动构建一个对象,您还可以通过传递一个可用于创建依赖关系的回调来告诉Laravel Service Container如何构造该对象。

<?php$container->bind('My\Service', function($container) {return new My\Service($container->make('My\AnotherService'));});

您需要创建一个服务提供商来注册上述服务。

<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;class MyServiceProvider extends ServiceProvider{    public function reGISter()    {        $this->app->singleton(\My\Service::class, function ($app) {            return new \My\Service($app->make('My\AnotherService'));        });    }}

当My\Service需要被解析的时候,负责返回一个对象的回调函数就会被调用。

<?phpnamespace App\Http\Controllers;use App\User;use App\Http\Controllers\Controller;class MyController extends Controller{    protected $myService;    public function __construct(\My\Service $myService)    {        $this->myService = $myService;    }    // .. 方法}

真实的例子

假设你的应用需要Facebook的PHP SDK来访问Facebook的api,你的控制器就是这样的:

<?phpnamespace App\Http\Controllers;use App\User;use App\Http\Controllers\Controller;use Facebook\Facebook;class FacebookApiAccessController extends Controller{    protected $facebook;    public function __construct(Facebook\Facebook $facebook)    {        $this->facebook = $facebook;    }    //.. action methods here}

现在,您需要告诉Service Container如何构建Facebook\Facebook的实例.

<?php$container->singleton('Facebook\Facebook', function() {  return new \Facebook\Facebook([    'app_id' => config('services.facebook.app_id'),    'app_secret' => config('services.facebook.app_secret'),    'default_graph_version' => 'v2.10',  ]);});

注意,我已经调用了方法singleton而不是bind。 唯一的区别是用singleton注册的服务被缓存,随后的解析服务调用返回缓存的服务。

关于“Laravel框架中依赖注入功能的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Laravel框架中依赖注入功能的示例分析

本文链接: https://www.lsjlt.com/news/278272.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Laravel框架中依赖注入功能的示例分析
    这篇文章将为大家详细讲解有关Laravel框架中依赖注入功能的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。概述任何时候,你在一个控制器类中请求一个依赖,这个服务容器负责:自动地在构造函数中检测依...
    99+
    2023-06-15
  • 详解Laravel框架的依赖注入功能
    目录概述真实的例子结论概述 任何时候,你在一个控制器类中请求一个依赖,这个服务容器负责: 1.自动地在构造函数中检测依赖关系 2.如果需要构建这个依赖关系 3.通过构造函数创建对象形...
    99+
    2024-04-02
  • Vue中依赖注入的示例分析
    这篇文章主要介绍了Vue中依赖注入的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。简单粗暴型:<el-select ...
    99+
    2024-04-02
  • Angular中依赖注入的示例分析
    这篇文章主要介绍Angular中依赖注入的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!依赖注入:设计模式依赖:程序里需要的某种类型的对象。依赖注入框架:工程化的框架注入器Injector:用它的API创建依...
    99+
    2023-06-06
  • Spring依赖注入的示例分析
    这篇文章给大家分享的是有关Spring依赖注入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.依赖简介一个典型的企业应用程序不是由一个单一的对象组成(或Spring的说法中的bean)。即使是最简单的...
    99+
    2023-06-03
  • Angular4依赖注入的示例分析
    这篇文章给大家分享的是有关Angular4依赖注入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基础知识Angular CLI 基本使用1、安装 Angular CLI...
    99+
    2024-04-02
  • Angular6中服务和依赖注入的示例分析
    这篇文章主要介绍Angular6中服务和依赖注入的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在开发中,组件一般用来写视图有关的功能,服务则写一些其他的逻辑,诸如从服务器获...
    99+
    2024-04-02
  • angular依赖注入实例分析
    这篇“angular依赖注入实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“angu...
    99+
    2024-04-02
  • AngularJS中模块化和依赖注入的示例分析
    这篇文章主要介绍了AngularJS中模块化和依赖注入的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • JSR通过JavaEE 6依赖注入的示例分析
    这篇文章将为大家详细讲解有关JSR通过JavaEE 6依赖注入的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Google Guice和刚刚被VMware收购的SpringSourc...
    99+
    2023-06-17
  • Angular4依赖注入之组件服务注入的示例分析
    这篇文章将为大家详细讲解有关Angular4依赖注入之组件服务注入的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。开发环境及开发语言:Angular 4 +Ang...
    99+
    2024-04-02
  • ASP.NET Core依赖注入实例分析
    今天小编给大家分享一下ASP.NET Core依赖注入实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。ASP...
    99+
    2023-06-30
  • Java开发人员依赖Spring框架的示例分析
    Java开发人员依赖Spring框架的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Diffblue 与 Vanson Bourn...
    99+
    2024-04-02
  • php中laravel框架的示例分析
    这篇文章主要介绍了php中laravel框架的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。laravel的安装首先安装laravel之前要安装composer,如果...
    99+
    2023-06-15
  • 怎么在Spring框架中注入依赖
    这篇文章将为大家详细讲解有关怎么在Spring框架中注入依赖,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。三种依赖注入的方式属性注入,通过setter方法注入bean的属性值或依赖的对象 构...
    99+
    2023-05-30
    spring
  • Vue 2.0中依赖注入provide/inject组合的示例分析
    这篇文章主要介绍Vue 2.0中依赖注入provide/inject组合的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用法-------------------------...
    99+
    2024-04-02
  • Angular中的依赖注入模式案例分析
    本文小编为大家详细介绍“Angular中的依赖注入模式案例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Angular中的依赖注入模式案例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • Laravel容器、控制反转和依赖注入实例分析
    这篇文章主要介绍“Laravel容器、控制反转和依赖注入实例分析”,在日常操作中,相信很多人在Laravel容器、控制反转和依赖注入实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Laravel容器、控...
    99+
    2023-06-29
  • ASP.NET Core依赖注入框架的使用
    目录一、IoC框架二、IoC-Autofac 三、.NET Core中自带DI的使用四、Autofac 使用五、批量注入 前言: 还记得上篇文章中ASP.NET Core 依赖注入详...
    99+
    2024-04-02
  • Angular 4依赖注入之Injectable装饰器的示例分析
    这篇文章主要为大家展示了“Angular 4依赖注入之Injectable装饰器的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Angular 4依赖注...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作