1. Go to this page and download the library: Download philharmony/http-enum library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
philharmony / http-enum example snippets
if ($method === 'POST') { ... }
if ($status >= 400) { ... }
if ($header === 'Content-Type') { ... }
if ($method === HttpMethod::POST) { ... }
if ($status->isError()) { ... }
if ($header === HttpHeader::CONTENT_TYPE) { ... }
use Philharmony\Http\Enum\HttpMethod;
$method = HttpMethod::POST;
if ($method->isSafe()) { /* Handle GET, HEAD... */ }
if ($method->isIdempotent()) { /* Handle PUT, DELETE... */ }
if ($method->isCacheable()) { /* Handle GET, HEAD */ }
if ($method->isReadOnly()) { /* Handle GET, HEAD, OPTIONS, TRACE */ }
if ($method->isWriteOnly()) { /* Handle POST, PUT, PATCH, DELETE, CONNECT */ }
if ($method->usuallyHasBody()) { /* POST, PUT, PATCH -> true, other false */ }
if ($method->allowsBody()) { /* POST, PUT, PATCH, DELETE -> true, other false */ }
use Philharmony\Http\Enum\StatusCode;
$status = StatusCode::NOT_FOUND;
if ($status->isInformational()) { /* 1xx */ }
if ($status->isSuccess()) { /* 2xx */ }
if ($status->isRedirection()) { /* 3xx */ }
if ($status->isClientError()) { /* 4xx */ }
if ($status->isServerError()) { /* 5xx */ }
if ($status->isError()) { /* 4xx and 5xx */ }
if ($status->isCacheable()) { /* Cacheable by default (RFC 9111) */ }
if ($status->statusClass() === 4) { /* client error */ }
if ($status->category() === 'server_error') { /* 5xx */ }
if ($status->phrase() === 'Not Found') { /* Semantic phrases */ }
echo StatusCode::NOT_FOUND->toStatusLine(); // 404 Not Found
use Philharmony\Http\Enum\ContentType;
$contentType = ContentType::JSON;
header('Content-Type: ' . $contentType->value);
if ($contentType->isTextBased()) { /* Handle text-like responses (JSON, HTML, etc.) */ }
if ($contentType->isJson()) { /* Handle json types */ }
if ($contentType->isXml()) { /* Handle xml types */ }
if ($contentType->isImage()) { /* Handle image types */ }
if ($contentType->isAudio()) { /* Handle audio types */ }
if ($contentType->isVideo()) { /* Handle video types */ }
if ($contentType->isMedia()) { /* Handle audio, video and image types */ }
if ($contentType->isFont()) { /* Handle font types */ }
if ($contentType->isForm()) { /* Handle for form types */ }
if ($contentType->isBinary()) { /* Handle for binary types */ }
if ($contentType->isScript()) { /* Handle for script type */ }
if ($contentType->isArchive()) { /* Handle for archive type */ }
if ($contentType->isCompressible()) { /* Enable gzip/br compression */ }
$type = ContentType::fromHeader('application/json; charset=utf-8');
if ($type?->isJson()) { /* Handle JSON */ }
$type = ContentType::fromExtension('txt');
header('Content-Type: ' . $type->value);
$type = ContentType::fromExtension('.json');
header('Content-Type: ' . $type->value);
$type = ContentType::fromFilename('image.png');
header('Content-Type: ' . $type->value);
echo ContentType::JSON->baseType(); // 'json'
echo ContentType::MP4->category(); // 'video'
echo ContentType::JSON->is('application/json'); // true
echo ContentType::JSON->is('APPLICATION/JSON'); // true
echo ContentType::JSON->matches('application/*'); // true
echo ContentType::PNG->matches('image/*'); // true
$best = ContentType::negotiate(
'application/json, text/html;q=0.9',
[ContentType::JSON, ContentType::HTML, ContentType::XML]
);
use Philharmony\Http\Enum\Scheme;
$scheme = Scheme::HTTPS;
echo $scheme->defaultPort(); // 443
if ($scheme->isSecure()) { /* Logic for secure connection (SSL/TLS) */ }
if ($scheme->) { /* Handle LDAP, LDAPS */ }
use Philharmony\Http\Enum\HttpHeader;
$header = HttpHeader::CONTENT_TYPE;
if ($header->isContentHeader()) { /* Handle content headers */ }
if ($header->isCacheHeader()) { /* Handle caching logic */ }
if ($header->isAuthHeader()) { /* Handle authentication */ }
if ($header->isSecurityHeader()) { /* Sensitive headers */ }
if ($header->isCors()) { /* CORS headers */ }
if ($header->isProxy()) { /* Proxy / forwarded headers */ }
if ($header->isConditional()) { /* Conditional requests */ }
$header = HttpHeader::fromString('content-type');
echo $header->value; // Content-Type
// HttpHeader::X_FORWARDED_FOR
$header = HttpHeader::tryFromString('x-forwarded-for');
use Philharmony\Http\Enum\AuthScheme;
$scheme = AuthScheme::fromHeader('Bearer token123');
if ($scheme?->isTokenBased()) { /* Handle Bearer or OAuth tokens */ }
if ($scheme?->isPasswordBased()) { /* Handle Basic or Digest authentication */ }
if ($scheme?->isChallengeBased()) { /* Handle challenge-response auth */ }
$scheme = AuthScheme::fromString('basic'); // AuthScheme::BASIC