Php Laravel控制器中两种输出响应方法的差异

Php Laravel控制器中两种输出响应方法的差异,php,laravel,cookies,http-headers,response,Php,Laravel,Cookies,Http Headers,Response,在Laravel中,有两种从控制器输出响应的方法。我想知道使用这两种方法的优点、缺点(优点和缺点)以及区别。还有,对cookie、会话、标题有什么影响 原因不一定是因为Laravel,而可能是因为PHP。但我需要这些信息来确保我的实现是完美的 我也在寻找最佳实践 方法A: return response('Hello World'); response('Hello World')->send(); exit; 方法B: return response('Hello World');

在Laravel中,有两种从控制器输出响应的方法。我想知道使用这两种方法的优点、缺点(优点和缺点)以及区别。还有,对cookie、会话、标题有什么影响

原因不一定是因为Laravel,而可能是因为PHP。但我需要这些信息来确保我的实现是完美的

我也在寻找最佳实践

方法A:

return response('Hello World');
response('Hello World')->send();
exit;
方法B:

return response('Hello World');
response('Hello World')->send();
exit;
根据我目前的理解。

  • 方法A不会立即输出响应,而是让它先返回,然后在一段时间后构建响应(在一些Laravel后期处理工作中)

  • 方法B立即生成输出

  • 方法B利用出口

  • 方法B在构造函数方法中工作,而方法A不工作

我的问题

  • 具体地说,对于方法A,在控制器中返回某些内容后,Laravel会做什么类型的后处理?通过具体了解返回响应后所做的操作,我可能知道结果,并知道哪种方法更适合我

  • 方法B立即输出有问题吗?有什么缺点吗

  • 使用exit有什么缺点吗?或者这是一种不好的做法,为什么


  • 谢谢

    方法A清楚地表明控制器操作正在返回它应该返回的内容。它也比方法B更简洁。关于这一点还有其他评论吗?事实上,由于拉威尔的局限性,我被迫使用方法B。我试图用一个_toString()方法返回一个类库,认为它将正确地输出我的响应。但是Laravel使用我的字符串输出,并在其周围封装了一层额外的HTTP包装器,使我的响应无效。这是默认实现。检查
    照明\路由\路由器
    的方法。如果控制器的返回值不是
    Symfony\Component\HttpFoundation\Response
    Psr\Http\Message\ResponseInterface
    的实例,那么它将使用
    illighted\Http\Response
    包装控制器的返回值。是的,我注意到了。我想知道我是否可以覆盖它的默认值,或者避免使用它。顺便问一下,你为什么要这样做?在中间件之后使用
    修改响应如何?方法A表明控制器操作正在返回一些它应该返回的内容。它也比方法B更简洁。关于这一点还有其他评论吗?事实上,由于拉威尔的局限性,我被迫使用方法B。我试图用一个_toString()方法返回一个类库,认为它将正确地输出我的响应。但是Laravel使用我的字符串输出,并在其周围封装了一层额外的HTTP包装器,使我的响应无效。这是默认实现。检查
    照明\路由\路由器
    的方法。如果控制器的返回值不是
    Symfony\Component\HttpFoundation\Response
    Psr\Http\Message\ResponseInterface
    的实例,那么它将使用
    illighted\Http\Response
    包装控制器的返回值。是的,我注意到了。我想知道我是否可以覆盖它的默认值,或者避免使用它。顺便问一下,你为什么要这样做?在中间件之后使用
    修改响应如何?