Удален ResponseInterface, теперь метод handle() сервера возвращает json строку или null, если пришло уведомление. Стало гораздо удобнее. Без этого невозможно было ранее засунуть ответ к примеру в симфониевский Response или какой-либо другой.
Улучшена обработка ошибок. Столкнулся со странным багом, когда каким-то образом не отлавливались некоторые исключения в методе handle сервера. Причем наблюдался он только в связке с симфонией. Я так и не понял в чём конкретно причина такого поведения, но проблема была решена.
Добавлена поддержка пространств имен.
Пример для наглядности:
$app = new Application(['namespace' => new UserApplication()]);
// Client: {"jsonrpc": "2.0", "method": "namespace.method", "params": [1, 2, 3], "id": 1}Это позволит писать более сложные приложения с большим кол-вом методов. Ранее приходилось бы делать что-то вроде этого:
$userApp = new UserApplication();
$app = new Application(['namespace.method' => [$userApp, 'method'], // и т.д.]);Что не очень красиво и жутко неудобно.
А еще можно свободно писать вот так:
$userApp = new UserApplication();
$app = new Application(['namespace.method' => [$userApp, 'dot.separated']]);И метод в UserApplication будет dotSeparated или dotseparated, или Dotseparated, да как угодно. суть в том, что точки просто игнорируются, что придаёт больше гибкости.