Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中并行调用多个函数_Php_Laravel - Fatal编程技术网

在PHP中并行调用多个函数

在PHP中并行调用多个函数,php,laravel,Php,Laravel,我在控制器上有以下代码 class SomController extends Controller { public function index(){ $var1 = $this->function1(); $var2 = $this->function2(); $var3 = $this->function3(); $var4 = $this->funct

我在控制器上有以下代码

class SomController extends Controller
{
public function index(){
    $var1           = $this->function1();
    $var2           = $this->function2();
    $var3           = $this->function3();
    $var4           = $this->function4();
    return view('someview', array(self::SOME1 => $var1,self::SOME2 => $var2,self::SOME3 => $var3,self::SOME4 => $var4));
  }
}

所以我想并行调用这4个函数,然后等待所有的函数完成,以便渲染laravel视图,我尝试使用pthreads、pcntl_fork,我甚至使用hhvm和hack,没有很好的结果,也没有并行结果有更简单的方法来实现吗

纯粹用PHP无法做到这一点,这只是像PHP、Ruby和Python这样的同步编程语言的本质,从代码开始到结束逐个执行代码。如果您想这样做,那么可以使用一种异步语言,比如Node.js,或者尝试搜索异步PHP库(不建议这样做,因为没有成熟的解决方案)


但是在这里:很多大公司在他们的网站上使用同步语言,如Google、Youtube、Bootcamp等。大多数时候,你真正需要的是首先巧妙地执行你的程序,然后如果你真的需要异步化请求,就在用户端使用AJAX,但这会使您的代码比您真正需要的代码复杂得多。

您已经尝试了最简单的方法;但是为什么需要并行执行呢?为了更好地执行,我不完全确定您的用例是什么,但是如果它有意义,您可以考虑创建一个基于事件的系统,然后从前端侦听事件。(或者,如果你不需要完整的事件系统,也可以从你的视图中调用一些简单的Ajax。)这可以让你的应用程序的多个实例同时处理不同的事情,但这确实会增加你的应用程序的复杂性project@Jaime我对此有意见,我应该从Thread扩展,并且我有我的run方法,但是如何为每个函数创建一个线程呢?同班