This repository contains the Request
class, a crucial component of the fastpress/framework
. The Request
class provides a comprehensive interface for handling HTTP requests in PHP applications. It simplifies accessing request data such as GET, POST, COOKIE, and SERVER variables, and includes methods for common request operations.
- Easy retrieval of GET, POST, COOKIE, and SERVER data.
- Convenience methods for checking the HTTP request method (GET, POST, PUT, DELETE).
- Utilities for common tasks like checking for Ajax requests and secure connections.
- Flexibility to extend or modify for custom use-cases.
To use this component, first ensure you have fastpress/framework
installed. This Request
class is a dependency of the framework and is meant to be used within its context.
If you are managing your project with Composer, you can add this dependency directly by running:
composer require fastpress/request
Ensure that this aligns with the version constraints of fastpress/framework.
To use the Request class, create an instance of it in your PHP application:
use Fastpress\Http\Request;
$request = new Request();
Validates the CSRF token.
$isValid = $request->validateCsrf();
- Returns: true if the CSRF token is valid, otherwise throws a RuntimeException.
generateCsrfToken(): string
- Generates a new CSRF token and stores it in the session.
$token = $request->generateCsrfToken();
Returns: The generated CSRF token.
Retrieves an input value from GET, POST, or JSON data.
$name = $request->input('name');
$age = $request->input('age', 25);
$rawInput = $request->input('comment', null, false);
$key: The input key. $default: Optional. The default value to return if the key is not found. $sanitize: Optional. Whether to sanitize the value. Defaults to true. Returns: The input value.
Retrieves an uploaded file.
$uploadedFile = $request->file('image');
$key: The file key. Returns: An array containing file information, or null if the file is not found.
hasFile(string $key): bool
Checks if an uploaded file exists and was uploaded successfully.
if ($request->hasFile('document')) {
// Process the file
}
$key: The file key. Returns: true if the file exists and was uploaded successfully, false otherwise.
Checks if the request content type is JSON.
if ($request->isJson()) {
// Process the JSON data
}
Returns: true if the content type is JSON, false otherwise. getMethod(): string Gets the HTTP request method.
$method = $request->getMethod();
Returns: The HTTP request method. getIp(): ?string Gets the client's IP address.
$ipAddress = $request->getIp();
Returns: The client's IP address, or null if it cannot be determined. accepts(string $contentType): bool Checks if the client accepts the given content type.
if ($request->accepts('application/json')) {
// Send JSON response
}
$contentType: The content type to check. Returns: true if the client accepts the content type, false otherwise. header(string $key, mixed $default = null): mixed Retrieves a header value.
PHP $authToken = $request->header('Authorization');
$key: The header key.
$default: Optional. The default value to return if the header is not found.
Returns: The header value.
get(string $key, mixed $default = null): mixed
Retrieves a GET parameter.
```php
$page = $request->get('page', 1);
$key: The GET parameter key. $default: Optional. The default value to return if the key is not found. Returns: The GET parameter value. post(string $key, mixed $default = null): mixed Retrieves a POST parameter.
$email = $request->post('email');
$key: The POST parameter key. $default: Optional. The default value to return if the key is not found. Returns: The POST parameter value. json(string $key, mixed $default = null): mixed Retrieves a value from the parsed JSON request body.
$userId = $request->json('user_id');
$key: The JSON key. $default: Optional. The default value to return if the key is not found. Returns: The JSON value. getBody(): string Gets the raw request body.
$requestBody = $request->getBody();
Returns: The raw request body. validate(array $rules): array Validates the request data against the given rules.
$rules = [
'name' => 'required|min:3',
'email' => 'required|email',
];
$errors = $request->validate($rules);
if (!empty($errors)) {
// Handle validation errors
}
$rules: An array of validation rules. Returns: An array of validation errors. setUrlParams(array $params): void Sets the URL parameters.
$request->setUrlParams(['id' => 10, 'slug' => 'my-article']);
$params: An array of URL parameters. param(string $key, mixed $default = null): mixed Retrieves a URL parameter.
$articleId = $request->param('id');
$key: The URL parameter key. $default: Optional. The default value to return if the key is not found. Returns: The URL parameter value. all(): array Gets all input data (GET, POST, JSON).
$allInputData = $request->all();
Returns: An array containing all input data.