2016-11-21 37 views
2

我有一個控制器調用多個並行函數在PHP

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,我甚至用hack來使用hhvm,沒有好的結果,也沒有並行的結果,有什麼簡單的方法可以實現這個目標?

+0

你試過最簡單的;但爲什麼你需要並行執行? –

+0

好,表現更好我猜 –

+0

http://php.net/manual/en/intro.pthreads.php – Jaime

回答

1

你不能單純在PHP中這樣做,它只是像PHP,Ruby和Python這樣的同步編程語言的本質,從代碼的開始到結束逐一執行代碼。如果你想這樣做,那麼使用像Node.js這樣的異步語言,或者試着搜索異步PHP庫(這是不推薦的,因爲沒有成熟的解決方案)。

但是在這裏:很多大公司都在他們的網站上使用同步語言,例如Google,Youtube,Bootcamp等。大多數情況下,您真正​​需要的是首先聰明地執行您的程序,然後如果您真的需要異步請求,在用戶端使用AJAX,但它會讓你的代碼很複雜,然後你可能真的需要。