Home

Awesome

PSR 7, 15, 17 Implementation and Examples

build codecov Scrutinizer Code Quality License: MIT

This library is a PSR HTTP implementation created for Shieldon firewall 2 , following up the PSR (PHP Standard Recommendation) documents by one hundred percent.

Test Status

Shiledon PSR-HTTP library is strictly tested by unit tests contain almost all conditions that might be happened, if you find any bug or something that can improve this library, please let me know.

Test suiteStatus
Repository built-in testsBuild Status
PSR-7 integration testsBuild Status

You can use it on any framework which is compatible with those PSRs.

Install

composer require shieldon/psr-http

Test

composer install
composer test

Quick Start

The simplest way to start implementing PSR-7 on your PHP applications, let's check out the examples below.

Create a server request.


$serverRequest = ServerRequestFactory::fromGlobal();

Create a request.

$request = RequestFactory::fromNew();

Create a server response

$response = ResponseFactory::fromNew();

Create a URI.

// Create a URI contains visitor's information.

/**
 *  Assume a visior is viewing your website page, 
 *  for example, https://yoursite/en/post1.html
 */
$uri = UriFactory::fromGlobal();

echo $uri->getPath();
// Outputs: /en/post1.html

// Create a URI just a new instance.
$uri = UriFactory::fromNew();

echo $uri->getPath();
// Outputs: 

Create a stream instance.

// Create a stream just a new instance.
$stream = StreamFactory::fromNew();

Create an array with UploadedFile structure.

// Let's see the following example, 
// assume we have a superglobal $_FILES looks like this.
$_FILES = [
    'foo' => [
        'name' => 'example1.jpg',
        'type' => 'image/jpeg',
        'tmp_name' => '/tmp/php200A.tmp',
        'error' => 0,
        'size' => 100000,
    ]
];

$uploadFileArr = UploadedFileFactory::fromGlobal();

echo $uploadFileArr['foo']->getClientFilename();
// Outputs: example1.jpg

Table of Contents

If you are looking for combined examples, see unit testing.

The Behavior of Handling Request Body

Shieldon PSR-HTTP is ready for RESTful, the following content explains how PRS-HTTP deals with the request body.

The getParsedBody method will return:

Summary

ConditionMethodContent-typeParsed-body
APOSTmultipart/form-data<br />application/x-www-form-urlencodearray
BALL excepts GETapplication/jsonobject
CALL excepts GETAll excepts A or Barray
D--null

Hope this helps.


Author

Shieldon PSR HTTP library is brought to you by Terry L. from Taiwan.

License

MIT

References