2017-08-17 25 views
1

我在遷移到php71後面臨pcntl_signal的問題。在php7.1上配置pcntl_signal

我已經安裝了php71(brew install php71 --with-httpd24 --with-imap --with-postgresql)及其延長了pcntl(brew install homebrew/php/php71-pcntl),但pcntl_signal()仍然沒有工作

請幫助我,因爲我不明白爲什麼這是行不通的。

P.S.我在文件開頭運行的是工作php56

回答

1

一些研究,我發現了一個新的函數調用pcntl_async_signals()已php71被引入之後,相同的代碼,所以現在,而不是declare(ticks = 1);你必須使用pcntl_async_signals(true);

對於我的具體情況我固定的,如果這樣的:

<?php 

namespace AppBundle\Command; 

if (function_exists('pcntl_async_signals')) { 
    // for php 7.1 
    pcntl_async_signals(true); 
} else { 
    // for php 4.3.0+ (up to 7.0) 
    declare(ticks = 1); 
} 

abstract class AbstractCommand { 
    // use pcntl_signal() where you need 
} 

PS鏈接到documentation