使用事件
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
使用事件
控制台的应用程序类组件允许您选择钩到一个控制台应用程序的生命周期事件。而不是重新发明轮子,它使用Symfony EventDispatcher组件做这项工作:ob娱乐下载
1 2 3 4 5 6 7 8
使用ob娱乐下载\组件\控制台\应用程序;使用ob娱乐下载\组件\EventDispatcher\EventDispatcher;美元调度程序=新EventDispatcher ();美元应用程序=新应用程序();美元应用程序- >setDispatcher (美元调度程序);美元应用程序- >run ();
谨慎
控制台事件只是引发的主要命令被执行。命令由主命令调用不会引发任何事件。
的ConsoleEvents:命令
事件
典型的目的:做事之前运行任何命令(如日志记录命令是执行),或显示的事件被执行。
在执行任何命令,ConsoleEvents:命令
事件分派。听众接收ConsoleCommandEvent事件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用ob娱乐下载\组件\控制台\ConsoleEvents;使用ob娱乐下载\组件\控制台\事件\ConsoleCommandEvent;美元调度程序- >addListener (ConsoleEvents::命令,函数(ConsoleCommandEvent美元事件){/ /获取输入实例美元输入=美元事件- >getInput ();/ /得到输出实例美元输出=美元事件- >getOutput ();/ /执行命令美元命令=美元事件- >getCommand ();/ /写的命令美元输出- >writeln (sprintf (运行命令前的<信息> % s < /信息> ',美元命令- >getName ()));/ /获取应用程序美元应用程序=美元命令- >getApplication ();});
禁用命令里面的听众
使用disableCommand ()方法,您可以禁用命令在一个侦听器。应用程序将不执行命令,而是将返回代码113年
(定义在ConsoleCommandEvent: RETURN_CODE_DISABLED
)。这段代码是其中一个保留退出代码控制台命令,符合C / c++标准:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用ob娱乐下载\组件\控制台\ConsoleEvents;使用ob娱乐下载\组件\控制台\事件\ConsoleCommandEvent;美元调度程序- >addListener (ConsoleEvents::命令,函数(ConsoleCommandEvent美元事件){/ /执行命令美元命令=美元事件- >getCommand ();/ /……检查是否可以执行的命令/ /禁用命令,这将导致该命令被跳过/ /返回从应用程序和代码113美元事件- >disableCommand ();/ /可以使命令在后面的听众如果(!美元事件- >commandShouldRun ()) {美元事件- >enableCommand ();}});
的ConsoleEvents:错误
事件
典型的目的:处理异常扔在一个命令的执行。
由一个命令时抛出异常,包括那些从事件监听器触发,ConsoleEvents:错误
事件分派。一个侦听器可以包装或更改前的异常或做任何有用的应用程序异常。
听众接收ConsoleErrorEvent事件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
使用ob娱乐下载\组件\控制台\ConsoleEvents;使用ob娱乐下载\组件\控制台\事件\ConsoleErrorEvent;美元调度程序- >addListener (ConsoleEvents::错误,函数(ConsoleErrorEvent美元事件){美元输出=美元事件- >getOutput ();美元命令=美元事件- >getCommand ();美元输出- >writeln (sprintf (“哎呀,异常在运行命令<信息> % s < /信息> ',美元命令- >getName ()));/ /获取当前退出代码(异常代码)美元exitCode=美元事件- >getExitCode ();/ /改变了另一个例外美元事件- >setError (新\ LogicException (捕获异常的,美元exitCode,美元事件- >getError ()));});
的ConsoleEvents:终止
事件
典型的目的:执行一些命令后执行清理操作。
已经执行的命令后,ConsoleEvents:终止
事件分派。它可以用来做任何操作需要执行的所有命令或清理你发起的ConsoleEvents:命令
侦听器(如发送日志,关闭数据库连接,发送邮件,…)。一个侦听器也可能改变退出代码。
听众接收ConsoleTerminateEvent事件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
使用ob娱乐下载\组件\控制台\ConsoleEvents;使用ob娱乐下载\组件\控制台\事件\ConsoleTerminateEvent;美元调度程序- >addListener (ConsoleEvents::终止,函数(ConsoleTerminateEvent美元事件){/ /得到输出美元输出=美元事件- >getOutput ();/ /获取被执行的命令美元命令=美元事件- >getCommand ();/ /显示给定的内容美元输出- >writeln (sprintf (后运行命令<信息> % s < /信息> ',美元命令- >getName ()));/ /改变了退出代码美元事件- >setExitCode (128年);});
提示
这个事件也派出当异常抛出的命令。然后派遣后ConsoleEvents:错误
事件。收到的退出代码在本例中是异常代码。