gpt4 book ai didi

symfony - Request::createFromGlobals() 与 $this->getRequest()

转载 作者:行者123 更新时间:2023-12-02 04:29:29 25 4
gpt4 key购买 nike

我见过两种在 Controller 中获取 Request 对象的方法:

$request = Request::createFromGlobals();

$request = $this->getRequest();

我想知道有什么区别。一种方法比另一种更好吗?

最佳答案

还有更多方法可以注入(inject) Request 对象。

$request = Request::createFromGlobals();方法初始化一个新的请求对象。

这已经由框架为您完成。在您的 FrontController(app.php | app_dev.php) 中,Request Obj 被初始化并通过 handle 方法注入(inject)到 DependencyInjection 容器中。

...
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
...

因此,使用 DependencyInjection 组件获取请求是一种更好的方法: http://symfony.com/doc/current/components/dependency_injection/introduction.html

$this->getRequest();

该函数使用容器来获取当前请求:

public function getRequest()
{
return $this->container->get('request_stack')->getCurrentRequest();
}

更好的方法是将请求注入(inject)到您的 Controller 操作中 http://symfony.com/doc/2.5/book/controller.html#book-controller-request-argument

class FooController extends Controller
{
public function fooAction(Request $request)
{
$request->...
}
}

关于symfony - Request::createFromGlobals() 与 $this->getRequest(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24374605/

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