跳转至

参数解析器的生命周期🔗

参数解析器具有 生命周期(Lifecycle) 的机制,可以让参数解析器拥有更多的发展空间。

Note

其实,catch 方法也算是生命周期钩子的一个,会在解析函数的时候触发并截获返回值,但其触发机制与其他的不同:只有它会以某种顺序被触发。这个 “顺序” 会在后面的深渊篇谈到,不过就算是动用黑魔法也不需要关心这个就是了。

生命周期是一系列特定的方法,将会在特定的时候被批量触发 —— 也就是说到了一个时候所有的都会被触发,做一些事情后退出。

这些方法的返回值或者是引发的异常都不会受到关心,所以在调试时可以考虑套一个 try-catch-finally

这些方法都必须在参数解析器的声明里被声明为方法或者是静态方法 —— 也就是说只要不是事件的就都可以访问实例。

这些方法在被调用时都会且仅会被传入一个 DispatcherInterface 实例。

以下是这些特定方法的说明,实际执行顺序也根据这个表格自上而下:

方法名 / 生命周期名称 描述
beforeExecution 这个方法仅在整个执行(包括参数的解析,监听器的执行)前会被调用
beforeDispatch 这个方法仅在解析参数前会被调用
afterDispatch 这个方法仅在解析参数后会被调用
beforeTargetExec 这个方法仅在执行监听器前会被调用
afterTargetExec 这个方法仅在执行监听器后会被调用
afterExecution 这个方法仅在整个执行(包括参数的解析,监听器的执行)后会被调用