我想停止从控制器操作执行我的命令,所以我尝试使用pcntl来实现这一点。
这是我的代码(命令):
protected $should_stop = false;
protected function execute(InputInterface $input, OutputInterface $output)
{
pcntl_signal(SIGHUP, [$this, 'stopCommand']);
foreach($something as $row) {
pcntl_signal_dispatch();
if($this->should_stop === true) {
break;
}
...
}
}
protected function stopCommand()
{
$this->should_stop = true;
}
但是,当我运行我的命令时,它显示错误:
[Symfony\Component\Debug\Exception\UndefinedFunctionException]
Attempted to call function "pcntl_signal" from namespace "AppBundle\Command".
我不知道如何解决它,你们可以帮忙吗?此外,如果您有任何其他好的方法如何停止从控制器操作执行symfony命令,如果您可以在此处发布解决方案将是很好的。
我在我的mac上重新安装了XAMPP,这里是php -m:
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imap
json
ldap
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
现在它在控制台中运行而没有错误,但是当我从我的控制器运行此命令时,它显示与以前相同的错误。