Comet — Php-Фреймворк Для Быстрых Rest Api

Два года я писал микросервисы на Go, используя генераторы кода на основе Swagger. В результате получились довольно компактные и очень быстрые решения.

Сейчас я использую PHP, поэтому решил найти инструменты для решения тех же проблем в языковой экосистеме.

Я знаю и люблю Laravel и Symfony, но тащить их в проекты мне не хотелось — слишком много батареек, за которые приходится платить крутой кривой входа в проект и производительностью.



Comet — PHP-фреймворк для быстрых REST API

В результате появилось Комета — это современный PHP-фреймворк для разработки быстрых API с использованием разработок команд SlimPHP и Workerman. Десятки тысяч запросов в секунду на обычной виртуальной машине и задержка менее миллисекунды! Чтобы не быть голословным, приведу результаты тестирования Comet и других популярных фреймворков.

Для более справедливого сравнения из сборки всех участников тестирования были удалены все тяжелые модули типа ORM. Первый случай — имитация высоконагруженной нагрузки в виде тысяч конкурентных рабочих запросов к методу, возвращающему строку приветствия «Hello, World!» открытым текстом:

Comet — PHP-фреймворк для быстрых REST API

Для оценки минимальной задержки мы использовали вариант, при котором один клиент последовательно отправлял один запрос в одну и ту же конечную точку:

Comet — PHP-фреймворк для быстрых REST API

Как видно из результатов, особенности архитектуры Comet позволяют ей обрабатывать в десять раз больше запросов с минимальными задержками, чем традиционные фреймворки.

Давайте взглянем на код, чтобы получить представление о том, с чем вы столкнетесь при реальной разработке Comet:

   

use Comet\Comet; require_once __DIR__ .

'/vendor/autoload.php'; $app = new Comet(); $app->get('/hello', function ($request, $response) { $response ->getBody() ->write("Hello, Comet!"); return $response; }); $app->run();

Все довольно прозрачно: использование маршрутизатора и замыканий обеспечивает компактный код, более похожий на тот, к которому привыкли разработчики NodeJS/Express. Я выложил весь код на GitHub и планирую расширить возможности фреймворка: https://github.com/gotzmann/comet Буду рад комментариям, коммитам и, конечно же, использованию Комета в реальных проектах :) Теги: #php #rest api #comet #slimphp #workerman
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.