在php7.1上配置pcntl_signal

时间:2017-08-17 19:34:09

标签: php php-7.1

迁移到php71后,我遇到了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 个答案:

答案 0 :(得分:1)

经过一些研究后,我发现在php71中引入了一个名为pcntl_async_signals()的新函数,所以现在在文件开头使用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
}

P.S。链接到documentation