Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ jobs:
php-version: '8.1'

- name: Setup Docker
run: docker-compose up -d --build
run: docker compose up -d --build

- name: Wait for Server to be ready
run: sleep 10

- name: Run FPM Tests
run: docker compose exec fpm vendor/bin/phpunit --configuration phpunit.xml

- name: Run Swoole Tests
run: docker compose exec swoole vendor/bin/phpunit --configuration phpunit.xml
run: docker compose exec swoole vendor/bin/phpunit --configuration phpunit.xml
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ $ git push origin [name_of_your_new_branch]

### Testing

- `docker-compose up -d`
- `docker-compose exec web vendor/bin/phpunit --configuration phpunit.xml`
- `docker-compose exec web vendor/bin/psalm --show-info=true`
- `docker compose up -d`
- `docker compose exec web vendor/bin/phpunit --configuration phpunit.xml`
- `docker compose exec web vendor/bin/psalm --show-info=true`

## Introducing New Features

Expand Down
78 changes: 40 additions & 38 deletions src/Http/Response.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,104 +42,91 @@ abstract class Response
* HTTP response status codes
*/
public const STATUS_CODE_CONTINUE = 100;

public const STATUS_CODE_SWITCHING_PROTOCOLS = 101;
public const STATUS_CODE_PROCESSING = 102;
public const STATUS_CODE_EARLY_HINTS = 103;

public const STATUS_CODE_OK = 200;

public const STATUS_CODE_CREATED = 201;

public const STATUS_CODE_ACCEPTED = 202;

public const STATUS_CODE_NON_AUTHORITATIVE_INFORMATION = 203;

public const STATUS_CODE_NOCONTENT = 204;

public const STATUS_CODE_RESETCONTENT = 205;

public const STATUS_CODE_PARTIALCONTENT = 206;
public const STATUS_CODE_MULTI_STATUS = 207;
public const STATUS_CODE_ALREADY_REPORTED = 208;
public const STATUS_CODE_IM_USED = 226;

public const STATUS_CODE_MULTIPLE_CHOICES = 300;

public const STATUS_CODE_MOVED_PERMANENTLY = 301;

public const STATUS_CODE_FOUND = 302;

public const STATUS_CODE_SEE_OTHER = 303;

public const STATUS_CODE_NOT_MODIFIED = 304;

public const STATUS_CODE_USE_PROXY = 305;

public const STATUS_CODE_UNUSED = 306;

public const STATUS_CODE_TEMPORARY_REDIRECT = 307;
public const STATUS_CODE_PERMANENT_REDIRECT = 308;

public const STATUS_CODE_BAD_REQUEST = 400;

public const STATUS_CODE_UNAUTHORIZED = 401;

public const STATUS_CODE_PAYMENT_REQUIRED = 402;

public const STATUS_CODE_FORBIDDEN = 403;

public const STATUS_CODE_NOT_FOUND = 404;

public const STATUS_CODE_METHOD_NOT_ALLOWED = 405;

public const STATUS_CODE_NOT_ACCEPTABLE = 406;

public const STATUS_CODE_PROXY_AUTHENTICATION_REQUIRED = 407;

public const STATUS_CODE_REQUEST_TIMEOUT = 408;

public const STATUS_CODE_CONFLICT = 409;

public const STATUS_CODE_GONE = 410;

public const STATUS_CODE_LENGTH_REQUIRED = 411;

public const STATUS_CODE_PRECONDITION_FAILED = 412;

public const STATUS_CODE_REQUEST_ENTITY_TOO_LARGE = 413;

public const STATUS_CODE_REQUEST_URI_TOO_LONG = 414;

public const STATUS_CODE_UNSUPPORTED_MEDIA_TYPE = 415;

public const STATUS_CODE_REQUESTED_RANGE_NOT_SATISFIABLE = 416;

public const STATUS_CODE_EXPECTATION_FAILED = 417;

public const STATUS_CODE_IM_A_TEAPOT = 418;
public const STATUS_CODE_MISDIRECTED_REQUEST = 421;
public const STATUS_CODE_UNPROCESSABLE_ENTITY = 422;
public const STATUS_CODE_LOCKED = 423;
public const STATUS_CODE_FAILED_DEPENDENCY = 424;
public const STATUS_CODE_TOO_EARLY = 425;

public const STATUS_CODE_UPGRADE_REQUIRED = 426;
public const STATUS_CODE_PRECONDITION_REQUIRED = 428;
public const STATUS_CODE_TOO_MANY_REQUESTS = 429;
public const STATUS_CODE_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
public const STATUS_CODE_UNAVAILABLE_FOR_LEGAL_REASONS = 451;

public const STATUS_CODE_INTERNAL_SERVER_ERROR = 500;

public const STATUS_CODE_NOT_IMPLEMENTED = 501;

public const STATUS_CODE_BAD_GATEWAY = 502;

public const STATUS_CODE_SERVICE_UNAVAILABLE = 503;

public const STATUS_CODE_GATEWAY_TIMEOUT = 504;

public const STATUS_CODE_HTTP_VERSION_NOT_SUPPORTED = 505;
public const STATUS_CODE_VARIANT_ALSO_NEGOTIATES = 506;
public const STATUS_CODE_INSUFFICIENT_STORAGE = 507;
public const STATUS_CODE_LOOP_DETECTED = 508;
public const STATUS_CODE_NOT_EXTENDED = 510;
public const STATUS_CODE_NETWORK_AUTHENTICATION_REQUIRED = 511;

/**
* @var array
*/
protected $statusCodes = [
self::STATUS_CODE_CONTINUE => 'Continue',
self::STATUS_CODE_SWITCHING_PROTOCOLS => 'Switching Protocols',
self::STATUS_CODE_PROCESSING => 'Processing',
self::STATUS_CODE_EARLY_HINTS => 'Early Hints',
self::STATUS_CODE_OK => 'OK',
self::STATUS_CODE_CREATED => 'Created',
self::STATUS_CODE_ACCEPTED => 'Accepted',
self::STATUS_CODE_NON_AUTHORITATIVE_INFORMATION => 'Non-Authoritative Information',
self::STATUS_CODE_NOCONTENT => 'No Content',
self::STATUS_CODE_RESETCONTENT => 'Reset Content',
self::STATUS_CODE_PARTIALCONTENT => 'Partial Content',
self::STATUS_CODE_MULTI_STATUS => 'Multi-Status',
self::STATUS_CODE_ALREADY_REPORTED => 'Already Reported',
self::STATUS_CODE_IM_USED => 'IM Used',
self::STATUS_CODE_MULTIPLE_CHOICES => 'Multiple Choices',
self::STATUS_CODE_MOVED_PERMANENTLY => 'Moved Permanently',
self::STATUS_CODE_FOUND => 'Found',
Expand All @@ -148,6 +135,7 @@ abstract class Response
self::STATUS_CODE_USE_PROXY => 'Use Proxy',
self::STATUS_CODE_UNUSED => '(Unused)',
self::STATUS_CODE_TEMPORARY_REDIRECT => 'Temporary Redirect',
self::STATUS_CODE_PERMANENT_REDIRECT => 'Permanent Redirect',
self::STATUS_CODE_BAD_REQUEST => 'Bad Request',
self::STATUS_CODE_UNAUTHORIZED => 'Unauthorized',
self::STATUS_CODE_PAYMENT_REQUIRED => 'Payment Required',
Expand All @@ -166,14 +154,28 @@ abstract class Response
self::STATUS_CODE_UNSUPPORTED_MEDIA_TYPE => 'Unsupported Media Type',
self::STATUS_CODE_REQUESTED_RANGE_NOT_SATISFIABLE => 'Requested Range Not Satisfiable',
self::STATUS_CODE_EXPECTATION_FAILED => 'Expectation Failed',
self::STATUS_CODE_IM_A_TEAPOT => 'I\'m a teapot',
self::STATUS_CODE_MISDIRECTED_REQUEST => 'Misdirected Request',
self::STATUS_CODE_UNPROCESSABLE_ENTITY => 'Unprocessable Entity',
self::STATUS_CODE_LOCKED => 'Locked',
self::STATUS_CODE_FAILED_DEPENDENCY => 'Failed Dependency',
self::STATUS_CODE_TOO_EARLY => 'Too Early',
self::STATUS_CODE_UPGRADE_REQUIRED => 'Upgrade Required',
self::STATUS_CODE_PRECONDITION_REQUIRED => 'Precondition Required',
self::STATUS_CODE_TOO_MANY_REQUESTS => 'Too Many Requests',
self::STATUS_CODE_REQUEST_HEADER_FIELDS_TOO_LARGE => 'Request Header Fields Too Large',
self::STATUS_CODE_UNAVAILABLE_FOR_LEGAL_REASONS => 'Unavailable For Legal Reasons',
self::STATUS_CODE_INTERNAL_SERVER_ERROR => 'Internal Server Error',
self::STATUS_CODE_NOT_IMPLEMENTED => 'Not Implemented',
self::STATUS_CODE_BAD_GATEWAY => 'Bad Gateway',
self::STATUS_CODE_SERVICE_UNAVAILABLE => 'Service Unavailable',
self::STATUS_CODE_GATEWAY_TIMEOUT => 'Gateway Timeout',
self::STATUS_CODE_HTTP_VERSION_NOT_SUPPORTED => 'HTTP Version Not Supported',
self::STATUS_CODE_VARIANT_ALSO_NEGOTIATES => 'Variant Also Negotiates',
self::STATUS_CODE_INSUFFICIENT_STORAGE => 'Insufficient Storage',
self::STATUS_CODE_LOOP_DETECTED => 'Loop Detected',
self::STATUS_CODE_NOT_EXTENDED => 'Not Extended',
self::STATUS_CODE_NETWORK_AUTHENTICATION_REQUIRED => 'Network Authentication Required',
];

/**
Expand Down
Loading