新在Symfo欧宝娱乐app下载地址ny 5.2:控制台信号
2020年10月13日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony的版本。欧宝娱乐app下载地址其中一些信息可能是过时了。阅读最近的Symfony文档欧宝娱乐app下载地址。
提供的
玛丽和格雷戈勒Pineau在# 33729和# 37827。
信号控制台命令所使用的是一种进程间通信机制。一个信号是一个异步通知发送到一个过程(或到一个特定的线程在同一进程)为了通知它发生的一个事件。例如,当你按下Ctrl + C
在一个命令中,操作系统发送信号情报
信号。
欧宝娱乐app下载地址Symfony 5.2引入了支持在你的命令响应信号(如戒烟命令时执行一些清理任务)。如果你想在命令处理一些信号,实现新的SignalableCommandInterface
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27日28
/ /……使用欧宝娱乐app下载地址\组件\控制台\命令\SignalableCommandInterface;类SignalCommand扩展命令实现了SignalableCommandInterface{/ /……受保护的函数执行(InputInterface美元输入,OutputInterface美元输出):int{/ /……}公共函数getSubscribedSignals():数组{/ /返回这里PCNTL扩展定义的常量/ / https://www.php.net/manual/en/pcntl.constants.php返回(SIGINT, SIGTERM);}公共函数handleSignal(int美元信号){如果(SIGINT = = =美元信号){/ /……}/ /……}}
如果你喜欢来处理一些信号为所有应用程序命令(如日志或概要命令),定义一个事件监听器或用户,听新ConsoleEvents:信号
事件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/ /……使用欧宝娱乐app下载地址\组件\控制台\事件\ConsoleSignalEvent;类SignalSubscriber实现了EventSubscriberInterface{/ /……公共函数handleSignal(ConsoleSignalEvent美元事件){美元信号=美元事件- >getHandlingSignal ();/ /……}公共静态函数getSubscribedEvents(){返回[ConsoleEvents::信号= >“handleSignal”,);}}
发表在#生活在边缘
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
Lyubomir Grozdanov is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now