Skip to content

php-fast-forward/http-factory

Repository files navigation

🚀 FastForward HTTP Factory

PHP Version License CI

A PSR-11 compatible service provider that registers a fully functional set of PSR-17 and PSR-7 HTTP factories using Nyholm PSR-7 and Nyholm ServerRequestCreator.

Designed to work out of the box with the php-fast-forward/container autowiring system.


📦 Installation

composer require fast-forward/http-factory

✅ Features

  • Registers the Psr17Factory as the base implementation for all PSR-17 interfaces
  • Registers the ServerRequestCreator using InvokableFactory
  • Provides ServerRequestInterface::class using fromGlobals() via MethodFactory
  • Aliases:
    • RequestFactoryInterface
    • ResponseFactoryInterface
    • ServerRequestFactoryInterface
    • StreamFactoryInterface
    • UploadedFileFactoryInterface
    • UriFactoryInterface

🛠️ Usage

If you’re using fast-forward/container:

use FastForward\Container\container;
use FastForward\Config\ArrayConfig;
use FastForward\Container\ContainerInterface;

$config = new ArrayConfig([
    ContainerInterface::class => [
        // Reference the service provider by class name
        HttpMessageFactoryServiceProvider::class,
    ],
]);

$container = container($config);

$requestFactory = $container->get(Psr\Http\Message\RequestFactoryInterface::class);
$serverRequest = $container->get(Psr\Http\Message\ServerRequestInterface::class);

🔧 Services Registered

The following services will be automatically registered in your container when using HttpMessageFactoryServiceProvider:

Service Interface Implementation Source
Psr\Http\Message\RequestFactoryInterface Nyholm\Psr7\Factory\Psr17Factory (via alias)
Psr\Http\Message\ResponseFactoryInterface Nyholm\Psr7\Factory\Psr17Factory (via alias)
Psr\Http\Message\ServerRequestFactoryInterface Nyholm\Psr7\Factory\Psr17Factory (via alias)
Psr\Http\Message\StreamFactoryInterface Nyholm\Psr7\Factory\Psr17Factory (via alias)
Psr\Http\Message\UploadedFileFactoryInterface Nyholm\Psr7\Factory\Psr17Factory (via alias)
Psr\Http\Message\UriFactoryInterface Nyholm\Psr7\Factory\Psr17Factory (via alias)
Nyholm\Psr7\Factory\Psr17Factory Registered via InvokableFactory
Nyholm\Psr7Server\ServerRequestCreator Registered via InvokableFactory, with dependencies
Psr\Http\Message\ServerRequestInterface Created by calling fromGlobals() on ServerRequestCreator via MethodFactory

📂 License

This package is open-source software licensed under the MIT License.


🤝 Contributing

Contributions, issues, and feature requests are welcome!
Feel free to open a GitHub Issue or submit a Pull Request.

About

Fast Forward PSR-7 HTTP Factory utility classes

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages