ResponseFactory

Namespace: FastForward\Http\Message\Factory

Purpose

ResponseFactory is the concrete implementation behind FastForward\Http\Message\Factory\ResponseFactoryInterface . It wraps a PSR-17 response factory and adds convenience methods for common response types.

Constructor

final readonly class ResponseFactory implements ResponseFactoryInterface
{
    public function __construct(
        private Psr\Http\Message\ResponseFactoryInterface $responseFactory,
    ) {}
}

Behavior

The class has two kinds of methods:

  • createResponse() delegates to the wrapped PSR-17 factory
  • the helper methods instantiate Fast Forward response classes directly

Helper Return Types

Helper method Concrete object returned
createResponseFromHtml() FastForward\Http\Message\HtmlResponse
createResponseFromPayload() FastForward\Http\Message\JsonResponse
createResponseFromText() FastForward\Http\Message\TextResponse
createResponseNoContent() FastForward\Http\Message\EmptyResponse
createResponseRedirect() FastForward\Http\Message\RedirectResponse

Important Detail

Only createResponse() uses the wrapped PSR-17 response factory. The convenience helpers create specialized response objects directly because those response types come from fast-forward/http-message .

Example

use FastForward\Http\Message\Factory\ResponseFactory;
use Nyholm\Psr7\Factory\Psr17Factory;

$factory = new ResponseFactory(new Psr17Factory());

$response = $factory->createResponseFromPayload([
    'hello' => 'world',
]);

Extensibility

ResponseFactory is final and readonly . If you need different helper behavior, prefer composition:

  • register your own implementation for FastForward\Http\Message\Factory\ResponseFactoryInterface
  • keep using the PSR-17 factory directly for custom response assembly