使用事件
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.6,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
使用事件
2.3
控制台事件在Symfony 2.3中引入的。ob娱乐下载
控制台的应用程序类组件允许您选择钩到一个控制台应用程序的生命周期事件。而不是重新发明轮子,它使用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娱乐下载\组件\控制台\事件\ConsoleCommandEvent;使用ob娱乐下载\组件\控制台\ConsoleEvents;美元调度程序- >addListener (ConsoleEvents::命令,函数(ConsoleCommandEvent美元事件){/ /得到输入实例美元输入=美元事件- >getInput ();/ /得到输出实例美元输出=美元事件- >getOutput ();/ /得到命令执行美元命令=美元事件- >getCommand ();/ /写的命令美元输出- >writeln (sprintf (运行命令前的<信息> % s < /信息> ',美元命令- >getName ()));/ /得到应用美元应用程序=美元命令- >getApplication ();});
禁用命令里面的听众
2.6
禁用命令在监听器是在Symfony 2.6中引入的。ob娱乐下载
使用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娱乐下载\组件\控制台\事件\ConsoleCommandEvent;使用ob娱乐下载\组件\控制台\ConsoleEvents;美元调度程序- >addListener (ConsoleEvents::命令,函数(ConsoleCommandEvent美元事件){/ /得到命令执行美元命令=美元事件- >getCommand ();/ /……检查是否可以执行的命令/ /禁用命令,这将导致该命令被跳过/ /返回从应用程序和代码113美元事件- >disableCommand ();/ /可以使命令在后面的听众如果(!美元事件- >commandShouldRun ()) {美元事件- >enableCommand ();}});
的ConsoleEvents:终止
事件
典型的目的:执行一些命令后执行清理操作。
已经执行的命令后,ConsoleEvents:终止
事件分派。它可以用来做任何操作需要执行的所有命令或清理你发起的ConsoleEvents:命令
侦听器(如发送日志,关闭数据库连接,发送邮件,…)。一个侦听器也可能改变退出代码。
听众接收ConsoleTerminateEvent事件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
使用ob娱乐下载\组件\控制台\事件\ConsoleTerminateEvent;使用ob娱乐下载\组件\控制台\ConsoleEvents;美元调度程序- >addListener (ConsoleEvents::终止,函数(ConsoleTerminateEvent美元事件){/ /得到输出美元输出=美元事件- >getOutput ();/ /得到执行的命令美元命令=美元事件- >getCommand ();/ /显示的东西美元输出- >writeln (sprintf (后运行命令<信息> % s < /信息> ',美元命令- >getName ()));/ /改变退出代码美元事件- >setExitCode (128年);});
提示
这个事件也派出当异常抛出的命令。然后派出前ConsoleEvents:异常
事件。收到的退出代码在本例中是异常代码。
的ConsoleEvents:异常
事件
典型的目的:处理异常扔在一个命令的执行。
一个命令时抛出异常的ConsoleEvents:异常
事件分派。一个侦听器可以包装或更改前的异常或做任何有用的应用程序异常。
听众接收ConsoleExceptionEvent事件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
使用ob娱乐下载\组件\控制台\事件\ConsoleExceptionEvent;使用ob娱乐下载\组件\控制台\ConsoleEvents;美元调度程序- >addListener (ConsoleEvents::异常,函数(ConsoleExceptionEvent美元事件){美元输出=美元事件- >getOutput ();美元命令=美元事件- >getCommand ();美元输出- >writeln (sprintf (“哎呀,异常在运行命令<信息> % s < /信息> ',美元命令- >getName ()));/ /获取当前的退出代码(异常代码或ConsoleEvents:设定的退出代码:终止事件)美元exitCode=美元事件- >getExitCode ();/ /改变另一个例外美元事件- >setException (新\ LogicException (捕获异常的,美元exitCode,美元事件- >getException ()));});