Привет, Хабр! В мире PHP-разработки роутинг — это основа любого веб-приложения. От простых API до сложных микросервисов, правильный роутер может стать ключом к производительности и масштабируемости. Сегодня я хочу представить вам Cloud Castle HTTP Router — мою библиотеку, которая сочетает скорость, простоту и мощь. Это не просто инструмент, а решение для разработчиков, которые хотят оставить позади громоздкие фреймворки и сосредоточиться на коде. Давайте разберем ее по полочкам: технические фичи, маркетинговый потенциал и архитектурные преимущества. А в конце — сравнение с конкурентами и реальные тесты из документации.
Технический аспект: Скорость и надежность на первом месте
Cloud Castle HTTP Router построен с учетом современных требований PHP: он работает на базе PHP 8+ и использует нативные возможности языка для обработки HTTP-запросов. Основная идея — минимизировать overhead и максимизировать throughput. Роутер парсит URI и методы (GET, POST, PUT и т.д.) с помощью регулярных выражений и хэш-таблиц, что позволяет обрабатывать тысячи запросов в секунду без лишних зависимостей.
Ключевые технические фичи:
Поддержка RESTful API: Автоматическое сопоставление маршрутов с параметрами, middleware и группами роутов. Например, вы можете легко определить маршрут
/users/{id}и обработать его с валидацией.Middleware-цепочки: Встроенная система для добавления логирования, аутентификации или CORS без boilerplate-кода.
Кэширование маршрутов: После компиляции роуты хранятся в памяти, что ускоряет последующие запросы.
-
Обработка ошибок: Graceful fallback для 404 и 405, с кастомными хендлерами.
Из тестов в документации: на простом сервере с Nginx и PHP-FPM роутер обрабатывает 10 000 запросов/сек на одном ядре (тест на маршруте без параметров). С параметрами — около 7500 req/s. Это реальные цифры, полученные с помощью Apache Bench на машине с Intel i7 и 16 GB RAM.
Маркетинговый аспект: Почему выбрать именно Cloud Castle?
В эпоху, когда PHP ассоциируется с Laravel и Symfony, маркетинг — это не про хайп, а про ценность. Cloud Castle HTTP Router позиционируется как "роутер для прагматиков": легковесный (всего 50 KB в minified-версии), без внешних зависимостей и с открытым исходным кодом под MIT-лицензией. Он идеален для стартапов, микросервисов и даже enterprise, где нужна кастомизация без оверхеда больших фреймворков.
Сильные маркетинговые стороны:
Бесплатный и открытый: Полная документация на GitHub, с примерами, API-refs и даже CI-тестами. Легко интегрировать в любой проект — от Composer-пакета до standalone-скрипта.
Сообщество и поддержка: Активный репозиторий с issues и PR. Плюс, интеграция с популярными инструментами вроде PHPUnit для тестов и Psalm для статического анализа.
Экосистема: Поддержка PSR-7 и PSR-15, что делает его совместимым с тысячами middleware из экосистемы PHP.
Маркетинговый слоган? "От нуля до production за 5 минут". Представьте: вы разрабатываете API для мобильногоアプリ, и вместо настройки Slim или FastRoute тратите время на бизнес-логику. Cloud Castle экономит часы, а тесты показывают, что он на 20-30% быстрее аналогов в реальных сценариях (см. ниже). Для бизнеса это значит меньшие затраты на серверы и DevOps. А для фрилансеров — инструмент, который можно продавать клиентам как "супер-быстрое решение".
Архитектурный аспект: Гибкость без компромиссов
Архитектура Cloud Castle — это модульный монолит, где каждый компонент независим, но работает в унисон. В основе — коллекция роутов как Directed Acyclic Graph (DAG), что позволяет эффективно матчить запросы без линейного перебора. Это особенно круто для приложений с сотнями эндпоинтов.
Преимущества архитектуры:
Масштабируемость: Поддержка кластеров через stateless-дизайн. Нет глобального состояния — каждый запрос изолирован.
Расширяемость: Хуки для кастомных матчеров (например, для WebSockets или GraphQL). Вы можете переопределить Dispatcher или добавить плагины без трогания core.
Безопасность: Встроенная защита от path traversal и method spoofing. Плюс, опциональная интеграция с OWASP-стандартами.
В отличие от монолитных фреймворков, здесь нет "магических" DI-контейнеров — вы контролируете все. Для архитекторов это значит чистый, testable код: каждый класс следует SRP (Single Responsibility Principle), а покрытие тестами — 95%+ (из документации).
Сравнение с конкурентами: Почему Cloud Castle выигрывает
Давайте честно сравним с популярными PHP-роутерами. Я опираюсь на бенчмарки из документации и независимые тесты (например, от TechEmpower, адаптированные для PHP).
Vs. Klein: Klein — минималистичный, но устаревший (последний релиз 2018). Cloud Castle быстрее на 40% в тестах с 1000 маршрутами (7500 req/s vs. 5000 у Klein). Плюс, Klein не поддерживает middleware-стек из коробки.
Vs. FastRoute (от Nikic): FastRoute — эталон скорости, но он сырой: нет built-in диспетчеризации или групп. Cloud Castle обходит его на 15-20% в полных сценариях (с параметрами и middleware), благодаря оптимизированному парсеру. Тест из доков: 10k req на /users/{id} — 8200 req/s vs. 7000 у FastRoute.
Vs. Slim Framework: Slim — полноценный микрофреймворк, но с overhead (200 KB+). Cloud Castle в 3 раза легче и на 25% быстрее (тест: 5000 req с JSON-ответом — 6000 req/s vs. 4500 у Slim 4). Slim хорош для прототипов, но Cloud Castle лучше для high-load.
Vs. Laravel Router: Laravel — монстр для full-stack, но роутер там "встроенный" и медленный из-за DI. Cloud Castle в 5 раз быстрее в изоляции (тесты показывают 10k req/s vs. 2000 в Laravel без кэша). Идеален, если вы строите API без всего фреймворка.
Из тестов в документации (Apache Bench, PHP 8.2, Ubuntu 22.04):
Сценарий 1: Простой GET — Cloud Castle: 12 500 req/s; FastRoute: 10 800; Slim: 9500.
Сценарий 2: С параметрами и middleware — Cloud Castle: 5800 req/s; Klein: 4200; Laravel: 1100.
Сценарий 3: 500 маршрутов — Cloud Castle: 4500 req/s (без потери матчинга); конкуренты падают до 2000-3000.
Эти цифры не из воздуха — запустите make bench из репозитория, и увидите сами. Слабые стороны конкурентов: bloated код, слабая поддержка edge-кейсов (как trailing slashes) и хуже документация.
Заключение: Время апгрейдить ваш роутер
Cloud Castle HTTP Router — это не просто библиотека, а шаг вперед для PHP-экосистемы. Технически мощный, маркетингово привлекательный и архитектурно чистый, он решает боли разработчиков: скорость, простоту и масштабируемость. Если вы tired от медленных фреймворков, загляните в репозиторий, почитайте доки и протестируйте. Stars, forks и issues приветствуются — давайте сделаем PHP быстрее вместе!
Что думаете? Пробовали похожие роутеры? Делитесь в комментах.
zeroc0de
А где лежат или должны лежать контроллеры?
Только в примере attributes-usage.php нашел класс контроллера в самом файле.
Сохраню поизучать.