Презентуємо Hypervel: корутиновий фреймворк для майстрів Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 29 березня, 2025
Вас цікавить новітнє рішення для збільшення продуктивності ваших веб-додатків на PHP? У статті про Hypervel ми розглянемо, як цей фреймворк, натхнений Laravel, пропонує унікальні можливості для розробників завдяки підтримці корутин та покращеній обробці високих навантажень. Читайте далі, щоб дізнатися більше про переваги Hypervel та про те, як він може втілити ваші найсміливіші проекти!

Hypervel — це високопродуктивний PHP-фреймворк, натхнений Laravel, який пропонує нативну підтримку корутин для розробників, що створюють додатки з високою конкуренцією та інтенсивним введенням/виведенням. Фреймворк був створений Альбертом Ченом і є неофіційним рішенням, яке зберігає елегантний підхід до розробки Laravel, поєднуючи його з асинхронними можливостями Swoole.

Оскільки існує пакет Octane, підтримуваний офіційною командою, чи потрібно нам нове рішення? Це може видатися недоцільним, чи не так?

# Чому не Octane?

Octane суттєво покращує продуктивність Laravel, запускаючи додаток у довготривалому циклі життя, що усуває витрати на завантаження фреймворку при кожному запиті. Проте він не вирішує проблеми продуктивності, викликані блокуючим введенням/виведенням.

Наприклад, уявіть, що ви створюєте чат-бота на базі штучного інтелекту з використанням Laravel. Нехай кожен запит на API відповідає всього за 3-5 секунд. Якщо ви запустите свій Octane додаток з 10 робітниками, скільки запитів ваша програма зможе обробити одночасно при 100 конкурентних запитах? Кількість запитів за секунду (QPS) буде менше 3. Чому так відбувається?

Це відбувається через те, що Octane не надає можливостей неблокуючого введення/виведення в Laravel. Усі робітники залишаються заблокованими, поки не завершаться ці запити. Крім того, через обмеження сумісності з попередніми версіями Laravel менш ймовірно зможе підтримувати функції корутин у найближчому майбутньому.

Детальнішу інформацію можна знайти в цій справі.

# Особливості Hypervel

Hypervel побудований на розширенні Swoole, і всі компоненти підтримують корутини з готовністю. Фреймворк адаптує багато основних пакетів з Laravel, зберігаючи знайомі шаблони використання, що робить його відразу зрозумілим для розробників Laravel.

Цей фреймворк поєднує елегантний і виразний досвід розробки Laravel з потужними перевагами продуктивності корутинного програмування. Якщо ви розробник Laravel, ви одразу відчуєте себе як вдома з цим фреймворком — навчання займе мінімум часу.

Вашій увазі практичні приклади коду в Coding Like in Laravel.

Ось деякі ключові особливості:

Це ідеальний вибір для створення мікросервісів, API-шлюзів та додатків з високою конкуренцією, де традиційні PHP-фреймворки часто стикаються з обмеженнями продуктивності.

# Коритини

Коритини — це функції, які можуть призупиняти виконання і пізніше продовжувати з того місця, де зупинилися, зберігаючи свій стан між паузами. Уявіть, що це функції з кількома точками входу та виходу.

Коли кортина стикається з операцією, яка зазвичай блокувала б (наприклад, очікуючи дані з мережі), вона не блокує всю програму, а повертає контроль планувальнику. Той може виконати інші кортини, поки блокуюча операція не завершиться.

У Hypervel компоненти введення/виведення, такі як з'єднання з базами даних, файлові операції, HTTP-клієнти, а також усі вбудовані I/O-функції PHP працюють як корутини. Витрати на кожну корутину надзвичайно легкі в порівнянні з процесами чи потоками, що робить їх ідеальними для конкурентних I/O-операцій. Ця архітектура дозволяє Hypervel демонструвати чудову продуктивність у сценаріях з інтенсивним введенням/виведенням.

Детальніше про роботу корутин у Hypervel можна дізнатися в розділі Коритини офіційної документації.

Більше того, підтримка корутин не обмежується лише обробкою запитів. У Laravel єдиний спосіб покращити конкурентність у чергах або плануванні завдань — це збільшити кількість робітників на машині. Однак у Hypervel ви можете запускати декілька завдань одночасно під керівництвом корутин. Це означає, що один робочий процес може діяти як сотні традиційних робітників для задач, пов'язаних із введенням/виведенням у Laravel.

# Бенчмарки

Тести на бенчмарк охоплюють два різних сценарії для оцінки продуктивності за різних умов:

  1. Тест простого API: базова точка доступу hello world. Без застосування проміжного програмного забезпечення.

  1. Тест на симуляцію очікування I/O: затримка на одну секунду для симуляції часу очікування I/O.

Показник QPS для Laravel Octane близький до 8, але через його значну різницю з показниками Hypervel це виглядає таким чином у графіку.

Для більш детальної інформації ви можете переглянути бенчмарки.

# Системні вимоги

Hypervel має кілька системних вимог. Переконайтеся, що ваш веб-сервер відповідає наступним мінімальним вимогам до версії PHP та розширень:

Ви можете встановити розширення Swoole через PECL:

pecl install swoole

Користувачі Mac також можуть встановити Swoole через Homebrew:

brew tap shivammathur/extensions
brew install shivammathur/extensions/swoole@8.3

Використання shivammathur/extensions може допомогти вам вирішити поширені проблеми під час установки Swoole на Apple M1.

Для повного списку вимог зверніться до системних вимог на сайті.

# Установка

Ви можете легко створити новий проект Hypervel за допомогою команди Composer create-project:

composer create-project hypervel/hypervel example-app

Після створення проекту запустіть локальний сервер розробки Hypervel за допомогою команди serve:

php artisan serve

Після запуску HTTP-сервера ваше додаток буде доступним у веб-браузері за адресою http://localhost:9501 за замовчуванням.

# Висновок

Безумовно, Laravel є найкращим вибором для створення веб-додатків у багатьох випадках завдяки своїй зрілій спільноті та багатій екосистемі.

Однак у деяких сценаріях з високою конкуренцією або інтенсивним введенням/виведенням ви абсолютно можете спробувати Hypervel для досягнення ультра продуктивності та насолодитися досвідом розробки, схожим на Laravel.

Розпочати роботу з Hypervel можна, відвідавши офіційний сайт