Этап
Готова
Тип
Исследование
Приоритет
Обычный
Трудоемкость
Сложная
Создана
Дата создания
4 года назад
Назначена
Обновлена
2 года назад

В общем-то достаточно накопилось вкусностей. Как минимум переделать

/* object|array attr */
$attr;
на
Object|array $attr
if ($obj->getValue()) $obj->getValue()->getSubValue()
на
$obj->getValue()?->getSubValue()

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

Панель управления

Комментарии могут оставлять только авторизованные пользователи
 demius 2 года назад

Перешли. Уже внедрили атрибуты, начинаем указывать типы и избавляться от доктайпов. Более тонкие особенности пока не вводили

 demius 2 года назад

Ну, вроде все успешно переведено, и работает без проблем. только иногда требует горы правок, но не строго. по возможности.

 demius 2 года назад

пробуем после перехода на 8ку

 demius 2 года назад

В целом запуск на php8 прошел успешно. Вопрос стоит ли сейчас всюду искать места, которые надо переводить на новый синтаксис, или просто менять его по мере.

Думается, что второе. Все равно все места не найду

 demius 3 года назад

Да, 5.4 обновились, так что ничего не мешает попробовать поднять и пхп

 demius 3 года назад

И это уже можно проверить на

  • Entity/Comment::entity_type (да, он вот так, в snake_case никто не проверил, и соглашения по этому у нас нет)
  • entity/Doc::state у которого это вобще не enum, а контанты в модельке
 demius 3 года назад

Еще важная вещь это встроенный в php enum. И его поддержка доктриной, без необходимости под каждый enum собирать новый тип данных

 demius 3 года назад

Еще одна важная вещь в php8 указывание массива объектов вместо просто массива.

 private StageItem[] $items

вместо

 /**
  * @var StageItemp[] $items
  **/
 private array $items;

Это не только упрощает нам работу, но и упростит сериализацию и десериализацию справочника

 demius 3 года назад

Есть связанная задача tndt-94 в ней можно попробовать апнуться до php8, но не обязательно, она больше про обновления симфони, как минимум до 5.4, и если php8 зайдет до симфони 6

 demius 3 года назад

Странный первый комментарий, ?? и | между искючениями в catch есть и в php7.4

 demius 3 года назад

Отлично у нас задача на обновление php8 создана раньше чем задача на обновление на php7.4 Давайте тогда в tndt-95 обновлять симфони, а в этом tndt только пробовать обновить php8

 demius 4 года назад

В PHP8.1 подвезли нативные enum, это очень круто, и при переходе стоит попробовать начать использовать их вместо myclabs/php-enum. Так же для enum, которые хранят значение в атрибуте entity, acelaya/doctrine-enum-type надо использовать https://github.com/bpolaszek/doctrine-native-enums

 demius 4 года назад

А вот еще полезные фишки php8

  • $name = $arg['name'] ?? throw new DictionaryException() в общем-то тоже необязательный, но приятный сахар.
  • } catch(InvalidArgumentException | DictionaryException $e) { вот тут прямо очень удобно бы было.