Sendit не работает на PHP 8
Установил Sendit не отправлялись сообщение по итогу выяснилось что не работает на PHP 8 (проверил на php 8.0, 8.1, 8.2, 8.3). После того как поставил версию 7.4 всё заработало (этот компонент требует версию PHP 7.4 или выше! это то что написано на дополнении то есть по идее php 8 должен поддерживаться) На форуме нашёл следующее modx.pro/components/24188#comment-140721 Написано что исправят в следующем обновлении, но это сообщение с сентября 2023 года. У меня следующий вопрос у всех эта проблема или я словил баг?
Комментарии: 16
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вот код который внутри:
То что находится в core/components/sendit/presets/sendit.inc.php
Добавил только callback остальное не трогал
В данный момент стоит PHP FastCGI (Apache) 8.3.2 (alt)
Это то что у меня стоит внутри siDefaultEmail (ничего не менял)
Сюда приходит null, а так как модификатор count это по сути вызов функции count(), то и в функцию приходит null, а она на вход требует как минимум массив, поэтому php 8 выбрасывает критическую ошибку. Соответственно надо либо убрать условие или добавить дополнительную проверку, как в предыдущем комментарии. Но это всё только предположения.
На всякий случай проверил так. Здесь всё отправляется.
После того как поменяли строку на {if $questions && ($questions | count)} письма начали отправляться (до этого не отправлялись на php 8) Но похоже дело не только в этом.