Symfonyob娱乐下载 5.2中的新功能:控制台信号
2020年10月13日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
玛丽而且格雷戈勒Pineau在# 33729而且# 37827.
信号是控制台命令使用的进程间通信机制。信号是发送给进程(或同一进程中的特定线程)的异步通知,目的是通知进程发生了事件。例如,当你按Ctrl + C
在命令中,操作系统发送信号情报
给它发信号。
ob娱乐下载Symfony 5.2引入了对对你命令中的信号作出反应(例如,在退出命令时执行一些清理任务)。如果你想在命令中处理一些信号,实现newSignalableCommandInterface
:
12 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
/ /……使用ob娱乐下载\组件\控制台\命令\SignalableCommandInterface;类SignalCommand扩展命令实现了SignalableCommandInterface{/ /……受保护的函数执行(InputInterface$输入, OutputInterface$输出):int{/ /……}公共函数getSubscribedSignals():数组{//返回由PCNTL扩展定义的任何常量/ / https://www.php.net/manual/en/pcntl.constants.php返回(SIGINT, SIGTERM);}公共函数handleSignal(int$信号){如果(SIGINT = = =$信号) {/ /……}/ /……}}
如果您希望为所有应用程序命令处理一些信号(例如日志或配置文件命令),请定义一个事件监听器或订阅器听新的ConsoleEvents:信号
事件:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
/ /……使用ob娱乐下载\组件\控制台\事件\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