And not that it really matters, but if you go the override OO route, then you won't be adding to the middleware stack, you'll be replacing something in it. This means that you'll no where it goes (see above note) and your middleware depth will be less. I've not done any rigorous profiling, but it is at least nice for stacktraces and other debugging when there are fewer.