ft / request-response
A library with common request response utils and helper methods
Installs: 45
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/ft/request-response
Requires
- php: >=8.1
Requires (Dev)
- creativestyle/app-http-server-mock: ^1.0
- guzzlehttp/guzzle: ^7.4
- phpunit/phpunit: ^9.5
- symfony/http-foundation: ^6.1
- symfony/process: ^6.1
README
composer require ft/request-response
Usage
Requests
$req = new Request;
That's it. A request automatically builds all things related to the current request based on $_SERVER and request method.
classDiagram
class Request {
RequestHeaders $headers
RequestMethods $method
URL $url
float $time
object $parameters
?RequestBody $body
?string $ip
AbstractUser $user
string $protocol
isPOST() bool
isGET() bool
isPUT() bool
isPATCH() bool
isDELETE() bool
isHEAD() bool
isTRACE() bool
isCONNECT() bool
isOPTIONS() bool
isHTTPS() bool
isHeaderSet(string $header) bool
isHeaderSetAndNotEmpty(string $header) bool
isParameterSet(string $name) bool
isParameterSetAndNotEmpty(string $name) bool
hasBody() bool
containsErroneousParamaters(string ...$expecting) bool
}
Loading
All parameters are added to the request's parameters property regardless if they are query parameters or body parameters by way of multipart/form-data or www-form-urlencoded params. (Though, these are also added in the body property)
Responses
$resp = new Response();
Response is a builder-pattern class
Example:
$resp = new Response(); $resp->statusCode(StatusCodes::HTTP_VERSION_NOT_SUPPORTED) ->send();
Any time you call a send*() method of Response it will call die()
Response is content-type aware, for example, if you call the sendJson() method
it will automatically set the content type header for you:
$array = [ 'foo' => 'bar' ]; $resp = new Response(); $resp->sendJson($array);
classDiagram
class Response {
headers(array $headers = []) Response
contentType(string $mediaType) Response
statusCode(StatusCodes $code) Response
statusCodePhrase(string $message) Response
status(StatusCodes $code, ?string $message = null) Response
content(mixed $content) Response
redirect(string $url) never
redirectIf(string $url, callable $predicate) never
sendXML(string $xml) never
sendJson(mixed $json) never
sendHTML(string $html) never
sendNoContent(?string $etag = null) never
sendCreated(?string $uri = null) never
sendAccepted() never
sendNotFound(?string $message = null) never
sendUnauthorized() never
sendForbidden() never
sendBadRequest() never
sendInternalServerError() never
send() never
}
Loading