How should I use NotFoundHandler when migrating to Stratigility v3?

I’m trying to migrate a legacy app from Laminas v1 to v3 (as part of a PHP 8.1 upgrade).

I’ve got the bare bones of the existing middleware working by wrapping it up in DoublePassMiddlewareDecorator e.g.

$app = new Laminas\Stratigility\MiddlewarePipe();

$app->pipe(new DoublePassMiddlewareDecorator($services->get(Middleware\AuthenticationMiddleware::class)));

I’m having trouble with the NotFoundHandler and the ErrorHandler. The v3 Stratigiligy docs (Error Handlers - laminas-stratigility - Laminas Docs) seem to be out-of-date.

$app->pipe(new ErrorHandler(new Response(), new ErrorResponseGenerator($isDevelopmentMode));
...
$app->pipe(new NotFoundHandler(new Response());

I think I’ve got the error handler working by providing a closure that simply returns a new Response(), but I’m not sure how to plug the Laminas\Stratigility\Handler\NotFoundHandler into the MiddlewarePipe, since it doesn’t support MiddlewareInterface.

Is there a way to use a NotFoundHandler with a MiddlewarePipe, or do I need to create a custom NotFoundMiddleware that implements the interface?

The answer seems to be the RequestHandlerMiddleware. Sorry figured this out as soon as I posted…

Thanks to anyone who read. Of course I may still be doing it wrong…but at least I’m not stuck anymore.

$app->pipe(new RequestHandlerMiddleware(new NotFoundHandler(
    function() {
        return new Response();
    })
));