- Некорректно работают регулярные выражения, у которых в шаблоне используется символ "-", например preg_match([\w-]), теперь нужно экранировать - preg_match([\w-]). Поправил такую регулярку в rollun-utils config/env_configurator.php:24. Также в пакете rollun-openapi src/OpenAPI/Server/Attribute/Transfer.php:78
- Не удалось запустить сессии. Не разобрался. Пока временно убрал.
- Dotenv теперь не добавляет переменные окружения, если у него не указан параметр usePutenv. Нужно вызвать метод usePutenv(true). У нас это в config.php
- В rollun-dic в src/Dic/src/InsideConstruct.php:150 был такой код
В php 8 это не работает. Пришлось добавить проверку типа переменной $type
$functionName = "is_$type";
if ($type instanceof \ReflectionNamedType) { $type = $type->getName(); } $functionName = "is_$type";
- Пакет xiag/rql-parser больше не поддерживается, он передан другой организации и сейчас называется graviton/rql-parser. С ним возникли проблемы - классах нод появился абстрактный метод, который у нас не реализован - toRql().
- В пакете datastore в тестах используются утверждения assertAttributeEquals, которые были удалены из фреймворка phpunit
- В пакете openapi в файле config.php указаны конфиги для аутентификации и сессий, временно удалил.
- В пакете openapi изменилось название поля в consumer, раньше было mediaType, теперь mediaRange. В producer осталось mediaType. Изменил в шаблонах api.mustache
- В пакете mindplay/jsonfreeze, который используется в rollun-utils в сериализациях (\rollun\utils\Json\Serializer и \rollun\utils\Php\Serializer) версии больше 0.3.3 не сериализуют массивы, в которых есть строчные и числовые ключи. Пример такой: { "param": "string key", "0": "numeric key" } Текущая стабильная версия данного пакета 1.3.0. Вопрос в том, обновлять ли, игнорируя описанную выше проблему или оставить старую версию
Бібліотеки сумісні починаючи з наступних версій:
{
"rollun-com/rollun-callback": "^7.0.0",
"rollun-com/rollun-datastore": "^8.0.0",
"rollun-com/rollun-logger": "^7.0.0",
"rollun-com/rollun-utils": "^7.0.0",
"rollun-com/rollun-openapi": "^10.0.0"
}
- Замінити усі zend бібліотеки на їх laminas аналоги. Аналог знайти достатньо просто: треба знайти zend бібліотеку на github і там в README пишеться куди переїхала ця бібліотека.
- Оновити версії rollun бібліотек, актуальні версії можна знайти вище
- За потреби оновити усі інші стороні бібліотеки
- В composer.json, після розділу scripts дописати
"repositories": [
{
"type": "github",
"url": "[email protected]:orlyk-rollun/guzzle3.git"
}
],
"minimum-stability": "dev"
- Додайте в require секцію composer.json рядок
"guzzle/guzzle": "dev-php-8.0 as v3.9.0"
- Для того щоб запрацювали сесії додайте пакет
mezzio/mezzio-session-ext
- Конфігурація whoops в
development.local.php.dist
:
<?php
/**
* Development-only configuration.
*
* Put settings you want enabled when under development mode in this file, and
* check it into your repository.
*
* Developers on your team will then automatically enable them by calling on
* `composer development-enable`.
*/
declare(strict_types=1);
use Mezzio\Container;
use Mezzio\Middleware\ErrorResponseGenerator;
use Whoops\Handler\PrettyPageHandler;
use Whoops\Run;
return [
'dependencies' => [
'invokables' => [
],
'factories' => [
ErrorResponseGenerator::class => Container\WhoopsErrorResponseGeneratorFactory::class,
'Mezzio\Whoops' => Container\WhoopsFactory::class,
'Mezzio\WhoopsPageHandler' => Container\WhoopsPageHandlerFactory::class,
],
],
'whoops' => [
'json_exceptions' => [
'display' => true,
'show_trace' => true,
'ajax_only' => true,
],
],
];