config/app.php or via package discovery.nyholm/psr7 or php-http/message-factory).php-http/message-factory)?tuupola/http-factory to create GuzzleHttp\Psr7 messages.HttpMessageFactory adapter).$this->app->bind(
\Psr\Http\Message\RequestFactoryInterface::class,
\Tuupola\Http\Factory\RequestFactory::class
);
config/app.php or via package config:
'http-factories' => [
'factories' => [
App\Http\Factories\CustomRequestFactory::class,
],
],
Tuupola\Http\Factory\AbstractFactory.namespace App\Http\Factories;
use Tuupola\Http\Factory\AbstractFactory;
class CustomRequestFactory extends AbstractFactory {
public function createRequest(string $method, $uri) {
return parent::createRequest($method, $uri)
->withHeader('X-Custom-Header', 'value');
}
}
php-http/message-factory for mocking:
$factory = new \Tuupola\Http\Factory\RequestFactory();
$request = $factory->createRequest('GET', '/api');
tuupola/http-factory is lightweight and focuses on PSR-17.composer require tuupola/http-factory.php artisan container:inspect).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Autodiscovery fails to load factory | Missing HTTP messages in production | Fallback to default factory or throw clear errors. |
| PSR-17 client misconfiguration | HTTP requests fail silently | Validate client configurations in tests. |
| Custom factory throws exceptions | Breaks HTTP flows | Implement robust error handling in factories. |
| Dependency conflicts | Package installation fails | Use composer why-not to resolve conflicts. |
$requestFactory->createRequest() instead of new Request()").How can I help you explore Laravel packages today?