fyre / server
A HTTP server request/response library.
Requires
- fyre/config: ^4.1
- fyre/cookie: ^4.0
- fyre/filesystem: ^2.0
- fyre/negotiate: ^2.0
- fyre/request: ^3.0
- fyre/response: ^3.0
- fyre/useragent: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/datetime: ^3.0
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^11
This package is auto-updated.
Last update: 2024-12-20 14:05:15 UTC
README
FyreServer is a free, open-source immutable HTTP server request/response library for PHP.
Table Of Contents
Installation
Using Composer
composer require fyre/server
Server Requests
This class extends the Request class.
use Fyre\Server\ServerRequest;
$config
is a Config.$options
is an array containing configuration options.method
is a string representing the request method, and will default to the server request method.body
is a string representing the request body, and will default to the value ofphp://input
.headers
is an array containing headers to set, and will default to the server headers.protocolVersion
is a string representing the protocol version, and will default to "1.1".
$request = new ServerRequest($config, $options);
Default configuration options will be resolved from the "App" key in the Config.
$options
is an array containing configuration options.baseUri
is a string representing the base URI to use, and will default to "".defaultLocale
is a string representing the default locale, and will default to the system default.supportedLocales
is an array containing the supported locales, and will default to[]
.
$container->use(Config::class)->set('App', $options);
Autoloading
It is recommended to bind the ServerRequest to the Container as a singleton.
$container->singleton(ServerRequest::class);
Any dependencies will be injected automatically when loading from the Container.
$request = $container->use(ServerRequest::class);
Server Request Methods
Get Cookie
Get a value from the $_COOKIE
array.
$key
is a string representing the array key using "dot" notation.$filter
is a number representing the filter to apply, and will default to FILTER_DEFAULT.$options
is a number or array containing flags to use when filtering, and will default to 0.
$value = $request->getCookie($key, $filter, $options);
If the $key
argument is omitted, this method will return an array containing all values.
$values = $request->getCookie();
Get Data
Get a value from the $_POST
array or JSON body data.
$key
is a string representing the array key using "dot" notation.$filter
is a number representing the filter to apply, and will default to FILTER_DEFAULT.$options
is a number or array containing flags to use when filtering, and will default to 0.
$value = $request->getData($key, $filter, $options);
If the $key
argument is omitted, this method will return an array containing all values.
$values = $request->getData();
Get Default Locale
Get the default locale.
$defaultLocale = $request->getDefaultLocale();
Get Environment
Get a value from the $_ENV
array.
$key
is a string representing the array key.$filter
is a number representing the filter to apply, and will default to FILTER_DEFAULT.$options
is a number or array containing flags to use when filtering, and will default to 0.
$value = $request->getEnv($key, $filter, $options);
Get File
Get an UploadedFile or array of files from the $_FILE
array.
$key
is a string representing the array key using "dot" notation.
$file = $request->getFile($key);
If the $key
argument is omitted, this method will return an array containing all files.
$files = $request->getFile();
Get Json
Get a value from JSON body data.
$key
is a string representing the array key using "dot" notation.$filter
is a number representing the filter to apply, and will default to FILTER_DEFAULT.$options
is a number or array containing flags to use when filtering, and will default to 0.
$value = $request->getJson($key, $filter, $options);
If the $key
argument is omitted, this method will return an array containing all values.
$values = $request->getJson();
Get Locale
Get the current locale.
$locale = $request->getLocale();
Get Post
Get a value from the $_POST
array.
$key
is a string representing the array key using "dot" notation.$filter
is a number representing the filter to apply, and will default to FILTER_DEFAULT.$options
is a number or array containing flags to use when filtering, and will default to 0.
$value = $request->getPost($key, $filter, $options);
If the $key
argument is omitted, this method will return an array containing all values.
$values = $request->getPost();
Get Query
Get a value from the $_GET
array.
$key
is a string representing the array key using "dot" notation.$filter
is a number representing the filter to apply, and will default to FILTER_DEFAULT.$options
is a number or array containing flags to use when filtering, and will default to 0.
$value = $request->getQuery($key, $filter, $options);
If the $key
argument is omitted, this method will return an array containing all values.
$values = $request->getQuery();
Get Server
Get a value from the $_SERVER
array.
$key
is a string representing the array key.$filter
is a number representing the filter to apply, and will default to FILTER_DEFAULT.$options
is a number or array containing flags to use when filtering, and will default to 0.
$value = $request->getServer($key, $filter, $options);
If the $key
argument is omitted, this method will return an array containing all values.
$values = $request->getServer();
Get User Agent
Get the user agent.
$userAgent = $request->getUserAgent();
This method will return a UserAgent.
Is AJAX
Determine whether the request was made using AJAX.
$isAjax = $request->isAjax();
Is CLI
Determine whether the request was made from the CLI.
$isCli = $request->isCli();
Is Secure
Determine whether the request is using HTTPS.
$isSecure = $request->isSecure();
Negotiate
Negotiate a value from HTTP headers.
$type
is a string representing the type of negotiation to perform, and must be one of either "content", "encoding" or "language".$supported
is an array containing the supported values.$strict
is a boolean indicating whether to not use a default fallback, and will default to false.
$value = $request->negotiate($type, $supported, $strict);
Set Locale
Set the current locale.
$locale
is a string representing the locale.
$newRequest = $request->setLocale($locale);
The locale must be present in the supportedLocales
property of the ServerRequest $options
parameter.
Client Responses
This class extends the Response class.
use Fyre\Server\ClientResponse;
$options
is an array containing configuration options.body
is a string representing the message body, and will default to "".headers
is an array containing additional headers to set.protocolVersion
is a string representing the protocol version, and will default to "1.1".statusCode
is a number representing the status code, and will default to 200.
$response = new ClientResponse($options);
Delete Cookie
$name
is a string representing the cookie name.$options
is an array containing cookie options.domain
is a string representing the cookie domain, and will default to "".path
is a string representing the cookie path, and will default to "/".secure
is a boolean indicating whether to set a secure cookie, and will default to false.httpOnly
is a boolean indicating whether to the cookie should be HTTP only, and will default to false.sameSite
is a string representing the cookie same site, and will default to "Lax".
$newResponse = $response->deleteCookie($name, $options);
Get Cookie
$name
is a string representing the cookie name.
$cookie = $response->getCookie($name);
This method will return a Cookie.
Has Cookie
Determine whether a cookie has been set.
$name
is a string representing the cookie name.
$hasCookie = $response->hasCookie($name);
No Cache
Set headers to prevent browser caching.
$newResponse = $response->noCache();
Send
Send the response to the client.
$response->send();
Set Content Type
Set the content type header
$mimeType
is a string representing the MIME type.$charset
is a string representing the character set, and will default to "UTF-8".
$newResponse = $response->setContentType($mimeType, $charset);
Set Cookie
Set a cookie value.
$name
is a string representing the cookie name.$value
is a string representing the cookie value.$options
is an array containing cookie options.expires
is a number representing the cookie lifetime, and will default to 0.domain
is a string representing the cookie domain, and will default to "".path
is a string representing the cookie path, and will default to "/".secure
is a boolean indicating whether to set a secure cookie, and will default to false.httpOnly
is a boolean indicating whether to the cookie should be HTTP only, and will default to false.sameSite
is a string representing the cookie same site, and will default to "Lax".
$newResponse = $response->setCookie($name, $value, $options);
Set Date
Set the date header.
$date
is a string, number or DateTime object representing the date.
$newResponse = $response->setDate($date);
Set JSON
Set a JSON response.
$data
is the data to send.
$newResponse = $response->setJson($data);
Set Last Modified
Set the last modified date header.
$date
is a string, number or DateTime object representing the date.
$newResponse = $response->setLastModified($date);
Set XML
Set an XML response.
$data
is a SimpleXMLElement containing the data to send.
$newResponse = $response->setXml($data);
Download Responses
This class extends the ClientResponse class.
use Fyre\Server\DownloadResponse;
$path
is a string representing the file path.$options
is an array containing configuration options.filename
is a string representing the download filename, and will default to the file name.mimeType
is a string representing the MIME type, and will default to the file MIME type.headers
is an array containing additional headers to set.protocolVersion
is a string representing the protocol version, and will default to "1.1".statusCode
is a number representing the status code, and will default to 200.
$response = new DownloadResponse($path, $options);
From Binary
$data
is a string representing the file data.$options
is an array containing configuration options.filename
is a string representing the download filename, and will default to the file name.mimeType
is a string representing the MIME type, and will default to the file MIME type.
$response = DownloadResponse::fromBinary($data, $options);
Get File
Get the download File.
$file = $response->getFile();
Redirect Responses
This class extends the ClientResponse class.
use Fyre\Server\RedirectResponse;
$uri
is a Uri or string representing the URI to redirect to.$code
is a number representing the header status code, and will default to 302.$options
is an array containing configuration options.
$response = new RedirectResponse($uri, $code $options);
Uploaded Files
This class extends the File class.
Client Extension
Get the client extension.
$extension = $uploadedFile->clientExtension();
Client MIME Type
Get the client MIME type.
$mimeType = $uploadedFile->clientMimeType();
Client Name
Get the client filename.
$name = $uploadedFile->clientName();
Error
Get the uploaded error code.
$error = $uploadedFile->error();
Has Moved
Determine whether the uploaded file has been moved.
$hasMoved = $uploadedFile->hasMoved();
Is Valid
Determine whether the uploaded file is valid.
$isValid = $uploadedFile->isValid();
Move To
Move the uploaded file.
$destination
is string representing the destination folder.$name
is a string representing the new filename, and will default to the client name.
$file = $uploadedFile->moveTo($destination, $name);
This method will return a new File for the moved file.