gpt4 book ai didi

php - laravel 如何将对象传递给方法工作?

转载 作者:搜寻专家 更新时间:2023-10-31 21:01:35 24 4
gpt4 key购买 nike

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use App\Bar; //Q1. where is include App\Bar?
//Q2. where is new Bar; ?


class Foo extends Controller
{

public function foo(Request $request, Bar $bar){ //Q3. what is Bar $bar means? pass object into method?
#1
$this->validateLogin($request);

#2
$bar->barFunc();
}
}

我目前正在学习 laravel,我注意到 laravel 将对象传递给方法

但我很困惑它是如何工作的。

这是我的问题

  1. 我们使用命名空间App\Bar,包含文件在哪里? (使用命名空间时,laravel 会自动包含文件吗?)

  2. new Bar; 在哪里?

  3. foo(Request $request, Bar $bar) 是如何工作的?

它是否将对象传递给方法?

为什么不

foo(){
$bar = new Bar;
}

最佳答案

根据 Laravel Docs ,

See example of Implementations of PSR4 Autoloading

  • Laravel 使用type-hinting 依赖于您的 Controller 方法。方法注入(inject)的一个常见用例是将 Illuminate\Http\Request 实例注入(inject)到您的 Controller 方法中。查看更多关于 Dependency Injections in Controller

  • Laravel 的 Container称为 IOC(“控制反转”)容器,之所以如此,是因为它允许您在应用程序的顶层进行控制:您在低级代码( Controller 、实现类等)中请求“邮寄者”的一个实例,容器给你一个。您的低级代码不关心哪个服务实际发送您的邮件——Mandrill?邮枪?发送邮件?没关系,只要邮件程序类的接口(interface)相同即可。

希望这对您有所帮助!

关于php - laravel 如何将对象传递给方法工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41104093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com