Search by

cloud-castle / http-dev-server

alex-4-17

Встроенный PHP-сервер разработки: front controller, статика и запуск php -S поверх PSR-7/15.

v1.0.0 2026-11-06 14:44 UTC

This package is auto-updated.

Last update: 2026-11-06 14:48:40 UTC


README

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

CloudCastle Http DevServer

CloudCastle Http DevServer

Packagist Version License

Встроенный PHP-сервер разработки: front controller, статика и запуск php -S поверх PSR-7/15.

Установка

composer require cloud-castle/http-dev-server

Требуется PHP 8.1+ и cloud-castle/http-response ^1.1.

Быстрый старт

<?php

use CloudCastle\Http\DevServer\BuiltInServer;
use CloudCastle\Http\DevServer\BuiltInServerConfig;
use CloudCastle\Http\DevServer\FrontController;
use CloudCastle\Http\DevServer\PhpBuiltInRouter;
use CloudCastle\Http\DevServer\StaticPathResolver;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;

$handler = static function (ServerRequestInterface $request): ResponseInterface {
    // вернуть PSR-7 Response (например из HttpKernel::handle)
};

$front = new FrontController($handler);
$router = new PhpBuiltInRouter(new StaticPathResolver(__DIR__ . '/public'), $front);

// router.php для php -S:
// return $router->handle();

$config = new BuiltInServerConfig('127.0.0.1', 8080, __DIR__ . '/public', __DIR__ . '/router.php');
(new BuiltInServer($config))->start();

Возможности

  • Front controller: ServerRequestFactory::fromGlobals → handler → SAPI emit
  • Роутер php -S с безопасной раздачей статики
  • Запуск встроенного сервера с подменяемым process runner (для тестов)

Плюсы и минусы

Плюсы: тонкий слой над уже готовым http-response; без лишних runtime-зависимостей; удобно стыкуется с http-kernel через callable.

Минусы: только для разработки (php -S); пакет моложе аналогов вроде Symfony CLI server.

Когда применять

Локальный запуск микрофреймворка CloudCastle на PSR-7 без nginx/Apache.

Разработка

composer install
composer check

Лицензия

MIT © CloudCastle