Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Php freymvorki o kotoryh vy vozmozhno ne slyshali
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

PHP-фреймворки, о которых вы, возможно, не слышали

Источник: Vonage API Developer•10 ноября 2026 г. в 14:52

PHP-фреймворки, о которых вы, возможно, не слышали

Знакомство с Tempest, Phalcon и LeafPHP: тремя малоизвестными PHP-фреймворками, протестированными с использованием Vonage PHP SDK и RCS-обмена сообщениями.

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

Большая часть контента, который я пишу, посвящена Laravel и Symfony. Это логичное сочетание, учитывая, что это два крупнейших сообщества в мире PHP, не считая WordPress и Drupal². Множество разработчиков прошли этот путь, так почему бы не посмотреть на что-то другое?

Одна из вещей, которые я заметил за это время, заключается в том, что несколько новых платформ, набирающих популярность, созданы исключительно с упором на производительность.

Низкая скорость — это критика, часто адресуемая PHP, которую я уже не считаю особенно актуальной, и, возможно, эти фреймворки служат тому подтверждением, особенно с выходом PHP 8.6, в который встроен новый Polling API.

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

TempestPHP

Подпись: Новый фреймворк поднимает бурю. Я решил начать с TempestPHP, учитывая, что я недавно писал о мероприятии PHPVerse от JetBrains, где Брент Руз (Brent Roose) выступал в роли одного из ведущих.

Прошло уже немало времени с тех пор, как я увидел, как он запустил TempestPHP в своем блоге stitcher.io.

Вопрос «зачем использовать фреймворк» всегда важен. Во всем есть свой смысл. Laravel, например, появился из-за неудовлетворенности использованием CodeIgniter и под влиянием Ruby on Rails. Symfony родился из разочарования в Zend, и иногда за этим стоит разработчик, который потратил много-много часов на создание конкретного фреймворка и обладает достаточным опытом, чтобы сказать: «Может, я просто сделаю по-своему?».

Tempest — это именно такой проект.

Использование команды create-project в Composer для развертывания нового проекта:

Что входит в стандартную комплектацию

Всё в Tempest написано с нуля. Сюда даже входит новый шаблонизатор. У вас есть сервис-контейнер, представления, база данных и маршрутизация.

Если посмотреть на уровень внутреннего API, вы получаете всё новое и передовое — хуки свойств, атрибуты для маршрутизации (Symfony и API Platform используют похожие паттерны) и прокси-объекты (что-то новенькое, с чем я не так хорошо знаком).

Использование Tempest для отправки RCS-сообщения через Vonage

Я выбираю базовый подход, чтобы затронуть меньше деталей. У нас будет маршрут для отображения формы: пользователь вводит номер телефона и сообщение, нажимает кнопку отправки, и код отправляет сообщение (это также предполагает, что вы настроили свой песочный бокс (sandbox) для RCS-сообщений).

Установка Vonage PHP SDK

Сначала давайте подключим Vonage PHP SDK:

Затем вам понадобятся учетные данные: создайте новое приложение в панели управления Vonage или с помощью Vonage CLI, в результате чего вы получите Application ID и private.key в случае успеха.

Откройте файл .env и добавьте свои учетные данные:

Настройка Vonage Client

У Tempest довольно интересная концепция: он не навязывает вам какой-то определенный паттерн для следования; это полная противоположность «мнениям фреймворка» (opinionated framework).

Я нахожу этот подход довольно похожим на SlimPHP, хотя на самом деле Tempest разработан так, чтобы атрибуты, хуки свойств и прокси выступали в роли идентификаторов для вашей структуры. Это, безусловно, отличается от того, к чему я привык.

Для клиента Vonage мы создадим сервис, который будет использовать механизм автообнаружения Tempest для внедрения в контроллер.

Создание формы

Здесь есть две части: объект запроса Tempest, который может обрабатывать такие вещи, как валидация, и сама форма, представляющая собой представление (view).

Что мне очень нравится, так это использование трейтов для идентификации вашего кода с целью его высокоуровневого обнаружения. Вот объект запроса:

Я указал только строковый тип и длину, но вы также можете добавлять пользовательские правила. Например, Vonage PHP SDK имеет встроенный метод isValidE164(), который вы можете встроить в свои правила валидации.

А теперь создадим форму:

Вы можете видеть, что действием (action) формы является POST-запрос на адрес /messages, поэтому финальным шагом является создание контроллера. Tempest позволяет вам выбирать собственную структуру: традиционно во фреймворках, которые я использовал, применяется паттерн маршрут → контроллер → представление. Однако благодаря атрибутам и механизму обнаружения вам не обязательно иметь отдельный файл маршрутов, если вы этого не хотите.

Поэтому я создаю контроллер, который обрабатывает логику отправки RCS, и на этом всё:

Подобно тому, как работают другие фреймворки PHP, здесь используется функциональность session()->flash(), так что теперь остается только добавить вывод flash-сообщений под представлением формы:

Вы заметите теги PHP, но не пугайтесь! Мы уже видели компоненты Laravel Livewire, используемые подобным образом, что по сути близко к шаблону VueJS: сначала идет раздел логики, а во вторую очередь — HTML-шаблон.

Tempest предоставил мне довольно прямой путь для подключения Vonage без каких-либо серьезных подводных камней, над которыми нужно ломать голову. Опыт работы кажется мне довольно плавным, особенно с учетом опыта работы с Laravel и Symfony, но этот фреймворк определенно стоит попробовать, так как механизм автообнаружения выглядит несколько более новаторским (вы можете сами решить, является ли большее или меньшее количество «магии» хорошей вещью).

Phalcon

Phalcon — это имя, которое я слышу уже довольно давно, и даже тогда, когда я впервые услышал о нем около 2016 года, именно производительность привлекала к нему внимание. Этот фреймворк не похож ни на что из того, что я видел раньше: фактически это расширение на языке C, которое предоставляет элементы фреймворка для PHP-разработчиков.

Начало работы (выбрасываем свод правил в окно)

Я сразу оказываюсь в замешательстве. Учитывая распространенность создания новой установки фреймворка для приложения либо через composer create-project, либо через реализацию на базе CLI, которая использует его «под капотом», я мгновенно выбиваюсь из зоны комфорта.

Он не использует Composer; это расширение PHP. Инструкции по установке долгие; они зависят от вашей операционной системы, и везде есть предупреждения и подводные камни. Сам фреймворк полностью скомпилирован и хранится в памяти. Для меня это будет в новинку.

После выполнения множества действий, которые, честно говоря, напомнили мне старые добрые времена ручной настройки Apache, MySQL и php-fpm, я наконец могу запустить какой-то код. Это не проект из Packagist, так что это максимально ручной процесс:

Это настраивает ваш проект в текущей директории, а затем нам понадобится Vonage:

Я использовал библиотеку клиента здесь, потому что она также включает в себя Guzzle, чего Phalcon не предоставляет «из коробки». Это совсем другой подход.

Как мы делали в предыдущем разделе с TempestPHP, вам понадобятся Application ID и файл private.key. Поместите файл ключа в корневую директорию вашего проекта, но вместо того, чтобы помещать Application ID в файл .env, подумайте о том, как это работает на уровне выполнения. Вместо файла .env Application ID передается через терминал:

Немного необычно, верно?

Запуск приложения Phalcon

Верно, из коробки ничего не поставляется, так как нет Composer. Вместо этого Phalcon теперь (как расширение PHP на C) доступен «прямо из ядра». Поэтому мы создаем собственный файл бутстрапа в отдельном каталоге, public/index.php:

Мы настроили папки для контроллеров и представлений, так что можем создать само представление. Phalcon использует базовую систему представлений с файлами .phtml, но позже я бы порекомендовал использовать шаблонизатор вроде Blade или Twig.

Мы зарегистрировали каталог наших представлений как app/views, поэтому это представление находится по пути app/views/index/index.phtml:

Ах да. Вот почему я предложил использовать шаблонизатор. Из коробки в Phalcon заложена старомодная логика PHP, смешанная с HTML-формой. Наверное, можно сказать, что это похоже на Tempest, но в Tempest четко разделены зоны ответственности, чтобы логика и шаблон представляли собой разные части, из которых собирается компонент.

Последняя часть — это контроллер, который находится в app/controllers/IndexController.php:

Удивительно, но код по-прежнему выглядит как смесь чистого PHP и небольшого количества кода фреймворка. Правда, маршрутизация меня немного смутила, так как я не определял маршрут и вообще не использовал систему маршрутизации или диспетчеризации внутри Phalcon. Поскольку index — это пространство имен контроллера, я в итоге получил то, что хотел (т.е. GET / и POST /), но домашняя страница загружается потому, что «index» является именем маршрута по умолчанию.

Для запуска приложения проще всего использовать встроенный веб-сервер PHP:

Вердикт

Фух, готово. Не думаю, что мне доводилось видеть шаблон и структуру фреймворка, подобные этой, но учитывая наличие здесь некоторых приятных функций — например, структуры приложения 'Micro', которую можно использовать, — я абсолютно вижу ценность использования этого решения в качестве бэкенда для микросервисов или бессерверных вычислений.

Более того, объединение скорости нативного C-расширения с таким циклом событий, как ReactPHP, действительно позволило бы превзойти в бенчмарках другие ориентированные на производительность языки, не говоря уже о фреймворках.

LeafPHP: поворот к ИИ

Возвращаясь на более привычную территорию (до определенной степени), мы покидаем безумный мир автономных расширений на C и возвращаемся в разработку веб-приложений, но уже с мантрои «ИИ превыше всего» (AI-first).

Это еще один пример, подобный Slim и Phalcon, когда из коробки вам действительно дается немногое. Только маршрутизация и объекты запроса/ответа. Затем вы можете наращивать функционал по своему усмотрению (а список пакетов довольно обширный).

Поскольку инструмент спроектирован так, чтобы внутренний API поддерживал цепочки вызовов (chainable) между всеми пакетами, это обеспечивает лучший опыт для ИИ-агентов, занимающихся разработкой. Помимо чистой производительности, они стремятся (в духе Laravel) к высокой скорости разработки. От мысли до релиза — то, в чем я, по совести говоря, ужасен (но для этого и существует эпоха ИИ).

Установка Leaf

Как Symfony и Laravel, Leaf поставляется с собственной CLI-утилитой для упрощения работы. Сначала используйте Composer для глобальной установки на ваш компьютер:

Затем создайте новое приложение LeafPHP и установите SDK Vonage для PHP:

Мы возвращаемся к более традиционному использованию файла .env, хотя внутренний синтаксис для вызова переменной окружения несколько отличается от того, к чему я привык. Добавьте ID приложения в файл .env, а файл private.key — в корневой каталог проекта. Вызов переменной окружения выглядит следующим образом:

В отличие от Phalcon, в Leaf из коробки предусмотрена система конфигурации для переменных окружения, что делает работу с разработчиком довольно приятной по сравнению с другими фреймворками (хотя у Phalcon есть веская причина поступать иначе — у него несколько иной сценарий использования).

Настройка сервиса Vonage

Как и Tempest, Leaf поставляется с контейнером сервисов (Service container), который представляет собой паттерн связывания для внедрения зависимостей (Dependency Injection). Как и в других PHP-фреймворках вроде Symfony и Laravel, вы можете указать тип Сервиса в конструкторе контроллера, и он станет доступен (а во время тестирования вы сможете создавать фиктивные объекты (mock objects) для его замены).

Вы можете заметить, что Сервис на самом деле является обычным классом PHP, а не расширяет какой-либо базовый класс. Это происходит потому, что Leaf действует в более традиционном стиле фреймворков, регистрируя поставщика услуг (service provider), который необходимо зарегистрировать.

Я также мог бы предоставить доступ к Клиенту через публичный метод, который затем использовал бы Клиент Messages API (внутри Клиента Vonage) для вызова метода send(), но чтобы внести разнообразие, VonageService вместо этого имеет метод-обертку sendRcs(), который обрабатывает это за вас.

Далее нам нужен контроллер, к которому впоследствии будет привязан маршрут:

VonageService внедряется автоматически, и мы можем использовать метод sendRcs после проведения базовой валидации. Вы заметите, что GET-запрос привязан к представлению с именем message, которое мы еще не создали (или не привязали к методу create()), поэтому теперь нам нужно сделать форму.

Создайте его по пути app/views/message.blade.php — те из нас, кто знаком с Laravel, могут заметить, что Leaf поставляется с шаблонизатором Blade из коробки, что будет привычно.

Вот форма с методом отправки POST на эндпоинт /message, так что теперь нам нужно зарегистрировать маршрут. Это делается с помощью подхода бутстрапа, похожего на Slim. Создайте точку входа по пути /public/index.php:

И вот оно: RCS-сервис, контроллер и представление.

Заключение

Итак, краткий итог по нашим трем фреймворкам:

Фреймворк

Плюсы

Минусы

Примеры вариантов использования

TempestPHP

Совершенно новый, современный исходный код PHP; Функция автоматического обнаружения фреймворка; Встроенный API рефлексии, отлично подходящий для тестирования

Еще не готов к продакшну; Документация все еще находится в разработке; Небольшое сообщество из-за недостаточной зрелости

Высокая скорость разработки, а также меньше шаблонного кода в Tempest делают его идеальным кандидатом для создания пользовательской панели управления SaaS

Phalcon

Завидная скорость; Низкое потребление памяти и требований; Адаптируемость как к полноценному стеку MVC, так и к микроинстансу

Конвейеры DevOps и инфраструктура значительно сложнее в обслуживании из-за того, что это расширение на C; Сообщество относительно нишевое

Платформа REST (или gRPC), требующая высоких показателей производительности для большой пропускной способности

LeafPHP

Бонус в виде функций из чего-то масштабного вроде Laravel, но при этом гораздо более компактный и модульный; Защитные механизмы для быстрой разработки с помощью ИИ

Менее готов к продакшну, чем такие варианты, как Slim, Symfony или Laravel; Небольшое сообщество в силу своей зрелости

Благодаря небольшому размеру Leaf является отличным выбором для прототипирования или разработки MVP, например, на хакатоне

Прелесть использования PHP заключается в огромном количестве доступных вариантов. Symfony, Laravel, WordPress и Drupal имеют большие, зрелые поддерживающие их сообщества. Тем не менее, это справедливо и для TYPO3, а CakePHP и CraftCMS могут похвастаться впечатляющим спектром клиентов, использующих их технологии.

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

← Все статьи

О чём эта статья

Ещё в разделе «Телеком и сети»

Все →
Telia Estonia тестирует технологию Adtran 50G PON для подготовки к широкополосным услугам нового поколения
Adtran

Telia Estonia тестирует технологию Adtran 50G PON для подготовки к широкополосным услугам нового поколения

Устраните пробелы в записи вызовов с Call Intelligence
Bandwidth

Устраните пробелы в записи вызовов с Call Intelligence

Представляем LiveKit Portal для ROS 2
LiveKit

Представляем LiveKit Portal для ROS 2

Влияние Nokia в эпоху ИИ
Infinera

Влияние Nokia в эпоху ИИ

За рамками пропускной способности: сеть — это новые вычислительные мощности
Infinera

За рамками пропускной способности: сеть — это новые вычислительные мощности

Г гонка ИИ на самом деле является гонкой контекста
Twilio

Г гонка ИИ на самом деле является гонкой контекста

Ещё от Vonage API Platform

Ступенчатая аутентификация против 2FA при входе: когда и что использовать
Vonage API Platform

Ступенчатая аутентификация против 2FA при входе: когда и что использовать

Учебник по бизнес-обмену сообщениями RCS — QR-код для чата за 4 шага
Vonage API Platform

Учебник по бизнес-обмену сообщениями RCS — QR-код для чата за 4 шага

Настройка инициализатора Vonage для Rails с помощью vonage-rails
Vonage API Platform

Настройка инициализатора Vonage для Rails с помощью vonage-rails

Отправка RCS-сообщений с помощью Google Gemini и Vonage MCP Server
Vonage API Platform

Отправка RCS-сообщений с помощью Google Gemini и Vonage MCP Server

Голосовые звонки с преобразованием текста в речь на PHP
Vonage API Platform

Голосовые звонки с преобразованием текста в речь на PHP

Заменят ли ИИ программистов? Что, по мнению PHPVerse 2026, PHP-разработчикам делать дальше
Vonage API Platform

Заменят ли ИИ программистов? Что, по мнению PHPVerse 2026, PHP-разработчикам делать дальше