cloud-castle / http-response
PSR-7/PSR-17 неизменяемый HTTP-ответ и фабрика для PHP 8.1+: код состояния, стандартные фразы, заголовки и потоковое тело.
v1.0.3
2026-07-23 19:32 UTC
Requires
- php: >=8.1
- cloud-castle/support: >=1.0
- psr/http-factory: ^1.1
- psr/http-message: ^2.0
Requires (Dev)
- deptrac/deptrac: ^3.0 || ^4.0
- ergebnis/composer-normalize: ^2.45
- friendsofphp/php-cs-fixer: ^3.75
- icanhazstring/composer-unused: ^0.9
- infection/infection: ^0.29 || ^0.33
- php-parallel-lint/php-parallel-lint: ^1.4
- phpmd/phpmd: ^2.15
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^1.12 || ^2.1
- phpstan/phpstan-deprecation-rules: ^1.2 || ^2.0
- phpstan/phpstan-phpunit: ^1.4 || ^2.0
- phpstan/phpstan-strict-rules: ^1.6 || ^2.0
- phpunit/phpunit: ^10.5 || ^11.5
- psalm/plugin-phpunit: ^0.19 || ^0.20
- rector/rector: ^1.2 || ^2.0
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.12 || ^4.0
- vimeo/psalm: ^6.0
- webmozart/assert: ^1.11
Provides
This package is auto-updated.
Last update: 2026-07-30 05:59:05 UTC
README
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
CloudCastle Http Response
PSR-7 неизменяемый HTTP-ответ и PSR-17 фабрика: код состояния со стандартными пояснительными фразами, заголовки без учёта регистра и потоковое тело. Совместим с любым PSR-7 стеком.
Установка
composer require cloud-castle/http-response
Требуется PHP 8.1+.
Быстрый старт
<?php
use CloudCastle\Http\Response\Response;
use CloudCastle\Http\Response\ResponseFactory;
use CloudCastle\Http\Response\StreamFactory;
// Прямое создание.
$response = new Response(404);
echo $response->getStatusCode(); // 404
echo $response->getReasonPhrase(); // Not Found
// Неизменяемость: каждый with* возвращает новый экземпляр.
$json = (new Response())
->withStatus(201)
->withHeader('Content-Type', 'application/json')
->withBody((new StreamFactory())->createStream('{"id":1}'));
echo $json->getHeaderLine('content-type'); // application/json (без учёта регистра)
// PSR-17 фабрика — для DI и интеропа.
echo (new ResponseFactory())->createResponse(500)->getReasonPhrase(); // Internal Server Error
Возможности
- PSR-7
ResponseInterface— неизменяемый ответ:getStatusCode,getReasonPhrase,withStatusс автоподстановкой стандартной фразы. - PSR-7 сообщение (
MessageTrait): заголовки без учёта регистра (withHeader/withAddedHeader/withoutHeader), версия протокола, тело-поток. - PSR-17
ResponseFactoryInterface—ResponseFactory::createResponse. - PSR-17
StreamFactory— создание тела из строки, ресурса или файла. - Строгая валидация: коды вне диапазона
100–599и некорректные заголовки отвергаются исключениями (InvalidStatusException,InvalidHeaderException).
Разработка
composer install
composer check # линтеры + статический анализ + тесты
composer fix # автоисправления (Rector, PHP CS Fixer, PHPCBF)
composer ci # полный CI-пайплайн локально
Полный список команд с описаниями: composer run-script --list.
Документация
- Репозиторий: https://gitverse.ru/cloud-castle/http-response
- История изменений: CHANGELOG.md
- Как внести вклад: CONTRIBUTING.md
- Кодекс поведения: CODE_OF_CONDUCT.md
- Политика безопасности: SECURITY.md
Лицензия
MIT © CloudCastle (alex-4-17@yandex.ru)
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano