Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bayfrontmedia/php-http-request

Easily handle data from incoming HTTP requests.
https://github.com/bayfrontmedia/php-http-request

cookie delete get head header http method options patch php post put request server superglobal url

Last synced: about 3 hours ago
JSON representation

Easily handle data from incoming HTTP requests.

Awesome Lists containing this project

README

        

## PHP HTTP request

Easily handle data from incoming HTTP requests.

- [License](#license)
- [Author](#author)
- [Requirements](#requirements)
- [Installation](#installation)
- [Usage](#usage)

## License

This project is open source and available under the [MIT License](LICENSE).

## Author

Bayfront Media

- [Bayfront Media homepage](https://www.bayfrontmedia.com?utm_source=github&utm_medium=direct)
- [Bayfront Media GitHub](https://github.com/bayfrontmedia)

## Requirements

- PHP `^8.0`

## Installation

```
composer require bayfrontmedia/php-http-request
```

## Usage

**Request methods**

- [validateMethod](#validatemethod)
- [getMethod](#getmethod)
- [isConnect](#isconnect)
- [isDelete](#isdelete)
- [isGet](#isget)
- [isHead](#ishead)
- [isOptions](#isoptions)
- [isPatch](#ispatch)
- [isPost](#ispost)
- [isPut](#isput)
- [isTrace](#istrace)

**Data types**

- [getFile](#getfile)
- [hasFile](#hasfile)
- [getQuery](#getquery)
- [hasQuery](#hasquery)
- [getPost](#getpost)
- [hasPost](#haspost)
- [getServer](#getserver)
- [hasServer](#hasserver)
- [getCookie](#getcookie)
- [hasCookie](#hascookie)
- [getHeader](#getheader)
- [hasHeader](#hasheader)
- [getBody](#getbody)
- [hasBody](#hasbody)

**Specific values**

- [getUserAgent](#getuseragent)
- [getReferer](#getreferer)
- [getIp](#getip)
- [isCli](#iscli)
- [isJson](#isjson)
- [wantsJson](#wantsjson)
- [isHttps](#ishttps)
- [getRequest](#getrequest)
- [getUrl](#geturl)


### validateMethod

**Description:**

Returns valid request method with a fallback to `GET`.

Valid request methods include:

- `CONNECT`
- `DELETE`
- `GET`
- `HEAD`
- `OPTIONS`
- `PATCH`
- `POST`
- `PUT`
- `TRACE`

**Parameters:**

- `$method` (string)

**Returns:**

- (string)

**Example:**

```
use Bayfront\HttpRequest\Request;

echo Request::validateMethod('GET');
```


### getMethod

**Description:**

Returns current request method.

**Parameters:**

- None

**Returns:**

- (string)

**Example:**

```
use Bayfront\HttpRequest\Request;

echo Request::getMethod();
```


### isConnect

**Description:**

Is current request method `CONNECT`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isConnect()) {
// Do something
}
```


### isDelete

**Description:**

Is current request method `DELETE`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isDelete()) {
// Do something
}
```


### isGet

**Description:**

Is current request method `GET`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isGet()) {
// Do something
}
```


### isHead

**Description:**

Is current request method `HEAD`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isHead()) {
// Do something
}
```


### isOptions

**Description:**

Is current request method `OPTIONS`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isOptions()) {
// Do something
}
```


### isPatch

**Description:**

Is current request method `PATCH`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isPatch()) {
// Do something
}
```


### isPost

**Description:**

Is current request method `POST`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isPost()) {
// Do something
}
```


### isPut

**Description:**

Is current request method `PUT`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isPut()) {
// Do something
}
```


### isTrace

**Description:**

Is current request method `TRACE`.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isTrace()) {
// Do something
}
```


### getFile

**Description:**

Returns value of single `$_FILES` array key in dot notation or entire array, with optional default value.

**Parameters:**

- `$key = NULL` (string|null)
- `$default = NULL` (mixed): Default value to return if array key is not found

**Returns:**

- (mixed)

**Example:**

```
use Bayfront\HttpRequest\Request;

print_r(Request::getFile('profile_photo'));
```


### hasFile

**Description:**

Checks if `$_FILES` array key exists in dot notation.

**Parameters:**

- `$key` (string)

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::hasFile('profile_photo')) {
// Do something
}
```


### getQuery

**Description:**

Returns value of single `$_GET` array key in dot notation or entire array, with optional default value.

**Parameters:**

- `$key = NULL` (string|null)
- `$default = NULL` (mixed): Default value to return if array key is not found

**Returns:**

- (mixed)

**Example:**

```
use Bayfront\HttpRequest\Request;

print_r(Request::getQuery());
```


### hasQuery

**Description:**

Checks if `$_GET` array key exists in dot notation.

**Parameters:**

- `$key` (string)

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::hasQuery('page')) {
// Do something
}
```


### getPost

**Description:**

Returns value of single `$_POST` array key in dot notation or entire array, with optional default value.

**Parameters:**

- `$key = NULL` (string|null)
- `$default = NULL` (mixed): Default value to return if array key is not found

**Returns:**

- (mixed)

**Example:**

```
use Bayfront\HttpRequest\Request;

print_r(Request::getPost());
```


### hasPost

**Description:**

Checks if `$_POST` array key exists in dot notation.

**Parameters:**

- `$key` (string)

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::hasPost('username')) {
// Do something
}
```


### getServer

**Description:**

Returns value of single `$_SERVER` array key in dot notation or entire array, with optional default value.

**Parameters:**

- `$key = NULL` (string|null)
- `$default = NULL` (mixed): Default value to return if array key is not found

**Returns:**

- (mixed)

**Example:**

```
use Bayfront\HttpRequest\Request;

print_r(Request::getServer());
```


### hasServer

**Description:**

Checks if `$_SERVER` array key exists in dot notation.

**Parameters:**

- `$key` (string)

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::hasServer('SERVER_NAME')) {
// Do something
}
```


### getCookie

**Description:**

Returns value of single `$_COOKIE` array key in dot notation or entire array, with optional default value.

**Parameters:**

- `$key = NULL` (string|null)
- `$default = NULL` (mixed): Default value to return if array key is not found

**Returns:**

- (mixed)

**Example:**

```
use Bayfront\HttpRequest\Request;

print_r(Request::getCookie());
```


### hasCookie

**Description:**

Checks if `$_COOKIE` array key exists in dot notation.

**Parameters:**

- `$key` (string)

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::hasCookie('cart_id')) {
// Do something
}
```


### getHeader

**Description:**

Returns value of single header array key in dot notation or entire array, with optional default value.

**Parameters:**

- `$key = NULL` (string|null)
- `$default = NULL` (mixed): Default value to return if array key is not found

**Returns:**

- (mixed)

**Example:**

```
use Bayfront\HttpRequest\Request;

print_r(Request::getHeader());
```


### hasHeader

**Description:**

Checks if header array key exists in dot notation.

**Parameters:**

- `$key` (string)

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::hasHeader('Content-Type')) {
// Do something
}
```


### getBody

**Description:**

Returns content body of a request.

**Parameters:**

- None

**Returns:**

- (string)

**Example:**

```
use Bayfront\HttpRequest\Request;

print_r(Request::getBody());
```


### hasBody

**Description:**

Checks if content body of a request exists.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::hasBody()) {
// Do something
}
```


### getUserAgent

**Description:**

Returns client's user agent.

**Parameters:**

- None

**Returns:**

- (mixed): string|null

**Example:**

```
use Bayfront\HttpRequest\Request;

echo Request::getUserAgent();
```


### getReferer

**Description:**

Returns client's referring URL.

**Parameters:**

- None

**Returns:**

- (mixed): string|null

**Example:**

```
use Bayfront\HttpRequest\Request;

echo Request::getReferer();
```


### getIp

**Description:**

Returns the most probable IP of client with optional default value.

**Parameters:**

- `$default = ''` (string): Default IP address to return if none detected

**Returns:**

- (string)

**Example:**

```
use Bayfront\HttpRequest\Request;

echo Request::getIp();
```


### isCli

**Description:**

Is the request originating from the command line.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isCli()) {
// Do something
}
```


### isJson

**Description:**

Is the `Content-Type` header for this request JSON.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isJson()) {
// Do something
}
```


### wantsJson

**Description:**

Does the `Accept` header for this request expect JSON.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::wantsJson()) {
// Do something
}
```


### isHttps

**Description:**

Is connection HTTPS.

**Parameters:**

- None

**Returns:**

- (bool)

**Example:**

```
use Bayfront\HttpRequest\Request;

if (Request::isHttps()) {
// Do something
}
```


### getRequest

**Description:**

Returns array containing details of the client's request, or string of a specific part of the request.

**Parameters:**

- `$part = ''` (string): Which part of the request to return. Leaving this blank will return the entire array.

Valid `$part` values include any of the `PART_*` constants:

- `Requst::PART_METHOD`
- `Request::PART_PROTOCOL`
- `Request::PART_HOST`
- `Request::PART_PATH`
- `Request::PART_QUERY`
- `Request::PART_QUERY_STRING`
- `Request::PART_URL`
- `Request::PART_FULL_URL`

**Returns:**

- (mixed): array|string

**Example:**

```
use Bayfront\HttpRequest\Request;

echo Request::getRequest(Request::PART_URL);
```


### getUrl

**Description:**

Returns current URL.

**Parameters:**

- `$include_query = false` (bool): Include the query string, if existing

**Returns:**

- (string)

**Example:**

```
use Bayfront\HttpRequest\Request;

echo Request::getUrl();
```