Історія змін
Версія 10.4
Ключові зміни
- Переклади для груп API:
translations/rpc/<group>.<locale>.yaml; група важливіша за мову. - Переклади з розширень (
translations.paths), публічний сервісRpcLocaleNegotiator. - 10.4.1:
IApiRouteImport— маршрути адаптера можна підключити окремо для кожної групи API. - 10.4.2:
RpcExecutor— єдина точка входу для адаптерів (REST, MCP);rpc.post_responseзапускається для будь-якого джерела запиту і для кожного виконаного елемента batch.
Що врахувати
- Частковий базовий переклад: відсутній
descriptionбереться з базового перекладу мовоюkernel.default_locale, а не з атрибута / PHPDoc. - REST-виклики тепер отримують
rpc.post_response: для них запрацюють зв'язки кешу й async/notification-лістенери.
Зміни оточення
- Без змін відносно 10.3.
Версія 10.3
Ключові зміни
- У 2,4–4,2 раза більше запитів за секунду для звичайних викликів і документації.
- Налаштування batch:
enabled, inline-режим, ліміт паралельних процесівprocess_count. - Notifications у batch за специфікацією: без відповіді, batch лише з notifications —
204. - Від'єднане виконання notifications (
notification.process). - Переклад назв і описів методів за
Accept-Language, кеш документації зETag. cache.pool— власний пул кешу; ключ кешу відповідей містить реалізацію методу й версію API.- Токен і тіло запиту більше не передаються в командному рядку дочірніх процесів.
10.3.1
- Знову виконуються XHR-запити (
X-Requested-With: XMLHttpRequest). - Знову працює
#[Autowire]в аргументах RPC-методу. - Знову застосовується
#[RPC\Info(concat: …)]— перевірте клієнтів, якщо заданоconcat. - Застарілі методи знову позначаються в OpenRPC.
Що врахувати
batch.process_countза замовчуванням 2 — великі batch у процесному режимі стали повільнішими.- Terminate-лістенери застосунку тепер виконуються після RPC-запитів.
- Змінились конструктори кількох сервісів (лише при ручному створенні чи успадкуванні);
DocSecurityListenerвидалено.
Зміни оточення
ufo-tech/rpc-objects:^3.9.1.
Версія 10.2
Ключові зміни
- Групи API: кілька точок входу (public, internal, BFF) з власними методами, версіями й документацією; атрибут
#[RPC\APIGroups]. - Перевірка токенів для кожної групи через
security.providers(сервіс-валідатор або окремий список токенів). - Завантажувачі маршрутів
ApiYamlFileLoader/RpcYamlFileLoaderдля адаптерів. --api-groupдля консолі,apiGroupдля Messenger.- Batch на версійну адресу виконує елементи в цій версії.
Що врахувати
- Назви маршрутів отримали префікс групи (
general_ufo_rpc_api_server); старі назви лишаються аліасами дляgeneral. - Конструктор
SimpleTokenValidator:(RpcMainConfig $rpcConfig)->(array $tokens = []).
Зміни оточення
PHP:>=8.4.ufo-tech/rpc-objects:^3.9.
Версія 10.1
Ключові зміни
- Підтримка Symfony 8 (
^7.2|^8.0). - JSON-RPC notifications: запит без
idотримує204і виконується після відповіді. - Сувора перевірка JSON-RPC 2.0:
jsonrpc≠"2.0"і порожній batch відхиляються з-32600. - Єдиний формат помилок параметрів: усі проблеми по кожному параметру в
error.data.
Зміни оточення
PHP:>=8.3->>=8.4.Symfony:^7.2->^7.2|^8.0;symfony/messengerстав явною залежністю.ufo-tech/rpc-exceptions:^1.3->^2;ufo-tech/rpc-objects:^3.8;ufo-tech/dto-transformer:^3.1.
Версія 10.0.0
Ключові зміни
- Додано/уніфіковано підтримку API versioning у RPC-сервісі.
- Нормалізовано формат API-документації та проведено рефакторинг документаційного шару.
- Проведено загальний рефакторинг сервера для стабільнішої роботи в Symfony 7.x.
ServiceMap та DI
- Перенесено побудову
ServiceMapу compiler pass. - Додано підтримку
#[Autowire]сервісів у RPC-методах. - Винесено non-service класи з мапи сервісів і спрощено ServiceLocator-ланцюг.
Конвертори параметрів
- Додано Doctrine parameter converter.
- Покращено обробку enum-definition у параметрах і схемах.
Зміни оточення
PHP: без змін (>=8.3).Symfony: без змін (основні компоненти залишились на^7.2).ufo-tech:- додано
ufo-tech/packages:^1 ufo-tech/dto-transformer:^2->^2.1ufo-tech/rpc-objects: без змін (^3.4)ufo-tech/rpc-exceptions: без змін (^1.3)
- додано
Версія 9.2.1
Документація API
- Додано GET-параметр
infoв doc-controller для виводу базової інформації OpenRPC без повного документа.
Async callback
- Виправлено формування callback-відповіді в асинхронному потоці.
Зміни оточення
PHP: без змін (>=8.3).Symfony: без змін.ufo-tech: без змін.
Версія 9.1.5
Кешування
- Додано інвалідацію/видалення relation-cache.
- Додано підтримку
ignore cacheу запитах. - Виправлено
RpcCacheServiceі сценарії warmup кешу.
Асинхронність та конфігурація
- Додано підтримку кількох async-транспортів у конфігурації.
- Оновлено залежності та службові конфігураційні частини.
Типи та DTO
- Додано підтримку значень за замовчуванням для властивостей DTO.
- Виправлено обробку union-type у return-типах.
- Покращено сумісність з enum та генерацією assert-обмежень.
Зміни оточення
PHP: без змін (>=8.3).Symfony: без змін (залишились на^7.2для основних компонентів).ufo-tech:ufo-tech/dto-transformer:^1.1->^2ufo-tech/rpc-objects:^3.1->^3.4ufo-tech/rpc-exceptions: без змін (^1.3)
Версія 8.1.14
Документація та схеми
- Додано/перероблено builder для JSON Schema у документації RPC.
- Покращено відображення звʼязків (
relations) у згенерованій документації. - Виправлено генерацію enum-схем та позначок на кшталт
x-ufo-enum.
DTO та типізація
- Виправлено віддзеркалення DTO і обробку DTO-параметрів.
- Покращено підтримку
mixedта складних типів у генерації форматів. - Виправлено роботу з
BackedEnumі enum helper-логікою.
Runtime та async
- Виправлено обробник асинхронних запитів.
- Стабілізовано поведінку
RequestCarrierта спеціальних RPC-параметрів. - Усунуто проблеми з terminate-подіями у життєвому циклі обробки.
Зміни оточення
PHP: без змін (>=8.3).Symfony: доданоsymfony/yaml:^7.2таsymfony/uid:^7.2(інші Symfony-залежності без змін відносно 7.6.0).ufo-tech:ufo-tech/dto-transformer:^1.0->^1.1ufo-tech/rpc-objects:^3.0->^3.1ufo-tech/rpc-exceptions:>=1.0.3->^1.3
Версія 7.6.0
Загальні зміни
- Розвинено підтримку специфікації OpenRPC (включно з покращеннями генерації документації).
- Додано генератор Postman collection для RPC API.
- Розширено інтеграцію з DTO (підтримка
ufo-tech/dto-transformer, виправлення трансформацій). - Підтягнуто сумісність із
ufo-tech/rpc-objects3.x.
Події та життєвий цикл
- Додані/оновлені event listeners у пайплайні обробки RPC.
- Покращено роботу асинхронного callback-потоку.
- Виправлено обробку резолвера параметрів і автозвʼязування.
Конфігурація та стабільність
- Оновлено вимоги залежностей і конфігураційні ключі.
- Виправлено низку проблем безпеки, стабільності та deprecation-сумісності.
- Додано логування та покращено надійність документаційного шару.
Зміни оточення
PHP: без змін (>=8.3).Symfony: оновлено базові компоненти з^7.0до^7.2(framework-bundle,serializer,console,http-kernel,validator,security-bundle,http-client,process), доданоsymfony/lock:^7.2.ufo-tech:- додано
ufo-tech/dto-transformer:^1.0 ufo-tech/rpc-objects:>=2.3.1->^3.0ufo-tech/rpc-exceptions: без змін (>=1.0.3)
- додано
Версія 7.0.0
Загальні зміни
- Оновлено формат документації API до стандарту OpenRPC.
- Життєвий цикл RPC-сервера переведено на модель подій і підписників.
- Проведено суттєвий рефакторинг v7-пайплайну обробки запитів.
Конфігурація
- Конфігурація зазнала значних змін і не має повної зворотної сумісності з гілкою 6.x.
- У блоці
securityзахист тепер налаштований за діями (окремо API-виклики і документація), а не за HTTP-методами. - З блоку
docsприбрано вкладений блокresponse, параметри винесено на рівеньdocs. - Видалено застарілі параметри (
docs.response.json_schema). docs.project_namedocs.project_descriptiondocs.project_version
Зміни оточення
PHP: без змін відносно 6.4.0 (>=8.3).Symfony: без змін відносно 6.4.0 (ключові компоненти на^7.0).ufo-tech/rpc-objects:>=2.3.1->>=2.4.0.ufo-tech/rpc-exceptions: без змін (>=1.0.3).
Версія 6.4.0
Загальні зміни
- Впроваджено формат документації OpenRPC і оновлено генератор документації.
- Проведено рефакторинг обробки запитів та error-listener.
- Додано опис return-даних у документації методів.
- Покращено контекст обробки та стабільність validation/event-потоку.
Кеш та поведінка API
- Додано кешування для GET-запитів до документаційного API.
- Виправлено низку багів у валідації та автозвʼязуванні.
Зміни оточення
PHP:>=8.1->>=8.3.Symfony: перехід з^6.4на^7.0для основних компонентів (framework-bundle,serializer,console,http-kernel,validator,security-bundle,http-client,process).ufo-tech:ufo-tech/rpc-objects:1.*->>=2.3.1ufo-tech/rpc-exceptions:1.*->>=1.0.3
Версія 5.2.0
Загальні зміни
- Підсилено шар валідації: додано JSON Schema, type-hinting і покращену перевірку параметрів.
- Розширено описи методів і RPC-метадані в API-документації.
- Проведено cleanup застарілих частин (включно з вилученням залежності на laminas).
- Виправлено помилки в error-handler та конфігурації.
Документація та стабільність
- Додано службові файли безпеки/контриб’ютингу (
SECURITY,CONTRIBUTING,CODE_OF_CONDUCT). - Серія багфіксів для стабільнішої роботи в production-сценаріях.
Зміни оточення
PHP: без змін (>=8.1).Symfony: уточнено вимоги з6.*до^6.4, доданоsymfony/expression-language:^6.3.ufo-tech:ufo-tech/rpc-objects: без змін (1.*)ufo-tech/rpc-exceptions: без змін (1.*)
Версія 4.5.2
Загальні зміни
- Глобальний рефакторинг ядра bundle та RPC-пайплайну.
- Додано/стабілізовано підтримку batch-запитів і асинхронної обробки.
- Додано CLI-обробку для RPC (консольний процесинг).
- Винесено виключення в окремий пакет та знято частину жорстких внутрішніх залежностей.
- Додано/покращено безпековий режим і валідацію токенів.
Інтеграції та інструменти
- Додано експорт для SoapUI-інтеграції.
- Покращено логування RPC-сервера.
- Оновлено документацію та recipes для інтеграції у Symfony-проєкти.
Зміни оточення
PHP: зафіксовано мінімум>=8.1.Symfony: перехід на гілку6.*(framework-bundle,serializer,console,http-kernel,validator,http-client,process,security-bundle).ufo-tech:ufo-tech/rpc-objects:1.*ufo-tech/rpc-exceptions:1.*
Повний опис кожного релізу з прикладами — у теці releases репозиторію бандла.