bnf/typo3-http-factory

PSR-17 HTTP message factories for the TYPO3 PSR-7 implementation

0.1.1 2019-08-28 05:27 UTC

README

Scrutinizer Code Quality Build Status Coverage Status

Installation

To use this package, install bnf/typo3-http-factory using Composer:

composer require bnf/typo3-http-factory

Note, this is a pure composer package – not a full-fledged TYPO3 extension. This package is intended to be wrapped by other TYPO3 extensions like bnf/slim-typo3 in order to provide PSR-17 factories in a PSR-7/PSR-15 request handler context.

Usage in a custom wrapper extension

If you want to wrap this packages in an own TYPO3 extension, you need to specify the interface mappings for the TYPO3 dependency injection containers.

For TYPO3 v8/v9 you may provide configuration for the Extbase ObjectManager in ext_localconf.php:

$container = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\Container\Container::class);
$container->registerImplementation(\Psr\Http\Message\RequestFactoryInterface::class, \Bnf\Typo3HttpFactory\RequestFactory::class);
$container->registerImplementation(\Psr\Http\Message\ResponseFactoryInterface::class, \Bnf\Typo3HttpFactory\ResponseFactory::class);
$container->registerImplementation(\Psr\Http\Message\ServerRequestFactoryInterface::class, \Bnf\Typo3HttpFactory\ServerRequestFactory::class);
$container->registerImplementation(\Psr\Http\Message\StreamFactoryInterface::class, \Bnf\Typo3HttpFactory\StreamFactory::class);
$container->registerImplementation(\Psr\Http\Message\UploadedFileFactoryInterface::class, \Bnf\Typo3HttpFactory\UploadedFileFactory::class);
$container->registerImplementation(\Psr\Http\Message\UriFactoryInterface::class, \Bnf\Typo3HttpFactory\UriFactory::class);
unset($container);

As of TYPO3 v10.0 you may configure the alias map in your extensions dependency injection configuration Configuration/Services.yaml:

Psr\Http\Message\RequestFactoryInterface:
  alias: Bnf\Typo3HttpFactory\RequestFactory
Psr\Http\Message\ResponseFactoryInterface:
  alias: Bnf\Typo3HttpFactory\ResponseFactory
Psr\Http\Message\ServerRequestFactoryInterface:
  alias: Bnf\Typo3HttpFactory\ServerRequestFactory
Psr\Http\Message\StreamFactoryInterface:
  alias: Bnf\Typo3HttpFactory\StreamFactory
Psr\Http\Message\UploadedFileFactoryInterface:
  alias: Bnf\Typo3HttpFactory\UploadedFileFactory
Psr\Http\Message\UriFactoryInterface:
  alias: Bnf\Typo3HttpFactory\UriFactory