cloud-castle/http-response

PSR-7/PSR-17 неизменяемый HTTP-ответ и фабрика для PHP 8.1+: код состояния, стандартные фразы, заголовки и потоковое тело.

Maintainers

Package info

gitverse.ru/cloud-castle/http-response

Homepage

Issues

Documentation

pkg:composer/cloud-castle/http-response

Transparency log

Statistics

Installs: 45

Dependents: 5

Suggesters: 0

v1.0.3 2026-07-23 19:32 UTC

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

CloudCastle Http Response

Packagist Version Downloads PHP Version License

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 ResponseFactoryInterfaceResponseFactory::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.

Документация

Лицензия

MIT © CloudCastle (alex-4-17@yandex.ru)

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano