byjg/webrequest

A lightweight PSR-7 implementation and highly customized CURL wrapper for making REST calls.

Fund package maintenance!
byjg

Installs: 467 987

Dependents: 10

Suggesters: 0

Security: 0

Stars: 5

Watchers: 1

Forks: 5

Open Issues: 1

pkg:composer/byjg/webrequest

5.0.1 2025-01-19 20:28 UTC

This package is auto-updated.

Last update: 2025-11-20 21:14:45 UTC


README

Build Status Opensource ByJG GitHub source GitHub license GitHub release

A lightweight PSR-7 implementation and highly customized CURL wrapper for making REST calls.

Overview

PHP WebRequest is a fully PSR-compliant HTTP client package that provides:

PSR Implementations

  • PSR-7 - HTTP Message Interface (Request, Response, Stream)
  • PSR-17 - HTTP Factories (Request, Response, Stream, etc.)
  • PSR-18 - HTTP Client Interface

Additional Features

  • Helper classes for common request types (JSON, Form URL Encoded, MultiPart)
  • Support for parallel HTTP requests
  • Mock client for testing

Documentation

Basic Example

<?php
// Create a request
$uri = \ByJG\Util\Uri::getInstanceFromString('http://www.example.com/page');
$request = \ByJG\WebRequest\Psr7\Request::getInstance($uri);

// Send the request
$response = \ByJG\WebRequest\HttpClient::getInstance()->sendRequest($request);

// Process the response
$statusCode = $response->getStatusCode();
$body = $response->getBody()->getContents();

Install

composer require "byjg/webrequest"

Running Tests

# Start the test server
docker-compose up -d

# Run the tests
vendor/bin/phpunit

# Stop the server
docker-compose down

Dependencies

flowchart TD
    byjg/webrequest --> psr/http-message
    byjg/webrequest --> psr/http-client
    byjg/webrequest --> ext-json
    byjg/webrequest --> byjg/uri
Loading

Open source ByJG