PHP & Laravel 中 Facades 与 Dependency Injection(面门、依赖注入) 的用法、区别

前言

如果你还不知道什么是依赖注入,可以先看看我前面写过的PHP & 理解 Laravel 中的 Dependency Injection (依赖注入)

一、门面 VS 依赖注入

1.1 区别

  1. 门面是静态调用 className::xxx()
  2. 依赖注入是传递类作为参数调用 $name->()

1.2 什么时候用门面和依赖注入?

  1. 两者混合使用是最佳的
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/regsiger', function (Request $request) {
    $user_name = $request->input('user_name');
    return $user_name;
});

如果非要说什么时候用门面,什么时候用注入的话,我的建议是调用次数少的用门面,次数较多的用依赖注入。

二、门面 VS helper functions(全局函数 or 助手函数)

两者之间大同小异,有时 Facades 内部也是调用了 helper functions,所以像下面是等价的,都属于语法糖 API。

use Illuminate\Support\Facades\View;
return View::make('profile');
return view('profile');

参考文献:
https://laravel.com/docs/9.x/facades#facades-vs-dependency-injection

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cookcyq

请作者喝杯暖暖的奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值