0

我在 virtualbox VM 上运行 HHVM,将 webroot 映射到我的本地 laravel 安装,在内部 IP 上提供服务。

在本地,我在 http://[localhost]:8000 下为站点提供服务。

代码库是相同的。

MembersController.php(资源丰富的控制器)的代码:

public function show($id)
{


        $member = Member::findOrFail($id);

        $data               = array();
        $data['id']         = $member->id;
        $data['first_name'] = $member->first_name;
        $data['last_name']  = $member->last_name;

        return Response::json($data);


}

假设一切正常:

当我向 LOCALHOST 运行 GET 请求时:http://[localhost]:8000/api/v1/member/1,客户端正常返回 JSON - 一切都很好。

当我向 HHVM(相同的客户端,相同的代码库)运行 GET 请求时:http://[vm_ip_address]/api/v1/member/1,客户端没有收到任何数据。

数据正在通过 HHVM 中的调用传回,就像我将“return”更改为“echo”一样,在两种情况下都会返回有效负载(也包括标题)

看起来 HHVM 正在影响 laravel 的 Response::json() 函数,并且不允许在客户端显示回复内容。

有没有其他人看过这个?

这不是我可以设置单元测试的东西,因为它总是通过,因为最终回复中总是有数据:/

任何输入都会很棒 - 我有兴趣了解如何解决这个问题。

谢谢。

4

1 回答 1

0

可悲的是,您可能不得不亲自动手调试。HHVM 可能在执行此代码路径敏感的操作方面存在非常细微的差异。我们通过了 100% 的 laravel单元测试,但可能没有一个涵盖这种情况。

如果可以,请将代码追溯到数据更改的位置。输入echos 和error_logs 直到你可以构建一个非常小的测试用例,然后在 github 上打开一个问题,我们会修复它。

于 2014-03-06T08:14:11.303 回答