headzoo / web-tools
A collection of PHP classes used for making and handling web requests.
Requires
- php: >=5.5.0
- ext-curl: *
- headzoo/utilities: dev-master
- psr/log: dev-master
This package is not auto-updated.
Last update: 2022-02-01 12:33:13 UTC
README
A collection of PHP classes used for making web requests, and parsing information related to the HTTP protocol.
Overview
This library contains classes which can be used to perform the following tasks:
- Make GET/POST requests to remote servers.
- Parse raw HTTP headers, and build raw HTTP headers.
- Parse raw HTTP requests.
- Provides a very small web server written in PHP for testing purposes.
Requirements
Installing
The library may be installed using either git or Composer, but I strongly recommend using Composer so dependencies will be automatically installed. Add the web-tools dependency to your composer.json using the following code:
"require": {
"headzoo/web-tools" : "dev-master"
}
Quick Start
<?php use Headzoo\Web\Tools\WebClient; use Headzoo\Web\Tools\HttpMethods; // Make a simple GET request. $web = new WebClient(); $response = $web->get("http://headzoo.io"); // Make a simple POST request. $web = new WebClient(); $response = $web->post("http://headzoo.io", ["arg1" => "value1"]); // The response is an instance of WebResponse, which provides the response information. echo $response->getCode(); echo $response->getBody(); print_r($response->getHeaders()); // Making a requests with more configuration. $web = new WebClient(HttpMethods::GET); $web ->addHeader("Content-Type", "application/json") ->setUserAgent("My-Web-Client") ->setBasicAuth("headzoo", "password"); $response = $web->request("http://headzoo.io");
Class Documentation
This readme only briefly discussing some of the important classes in the library. See the class source code for more information.
Headzoo\Web\Tools\WebClient
Used to make any kind of HTTP request, including GET, POST, PUT, and DELETE.
Headzoo\Web\Tools\WebResponse
Represents a server response from a HTTP request.
Headzoo\Web\Tools\WebServer
A small, not yet finished testing web server.
Headzoo\Web\Tools\WebRequest
Represents an incoming web request.
Headzoo\Web\Tools\Builders\Headers
Normalizes and builds raw HTTP headers.
Headzoo\Web\Tools\Parsers\Headers
Parses raw HTTP headers into an array of key/value pairs.
Headzoo\Web\Tools\Parsers\Request
Parses a raw HTTP request into body, headers, etc.
Headzoo\Web\Tools\HttpMethods
Class of constants representing the supported request methods.
Headzoo\Web\Tools\Utils
Contains various utility methods used through out the library.
Change Log
v0.2 - 2013-12-31
- Major overhaul.
v0.1 - 2013-12-18
- Released code under MIT license.
TODO
- Add cookie management.
- Add certificate management.
License
This content is released under the MIT License. See the included LICENSE for more information.