Обновление MODX 2.8.6 и внезапные проблемы с PHP 7.4

Друзья, спешу донести до вашего внимания две новости.

1. Вышло небольшое обновление MODX до версии 2.8.6.
Список изменений для желающих можно посмотреть здесь. Особо крупных изменений и критичных изменений по безопасности в нем нет. Исправили несколько багов, местами несколько неприятных для разработчиков. Обновили библиотеки PHPThumb и Smarty.

2.Сразу несколько человек столкнулись с проблемами после обновления. Как оказалось текущая версия PHPThumb не поддерживает PHP 7.4 и устанавливая свежий MODX на базе PHP 7.4 вы получаете целый ряд незабываемых впечатлений при работе.
github.com/modxcms/revolution/issues/16468

Не торопитесь обновляться.


По сути основная проблема заключается в использовании любых компонентов на основе PHPThumb. Их несколько pThumb, phpThumbOn, phpThumbOf. Они все под капотом дергают системную библиотеку, встроенную в ядро MODX.

Кроме того отказываются генерироваться и отображаться эскизы изображений в админке.

Проблема усугубляется тем, что PHP 7.4 это основная версия для MODX 2.8.x
Большинство русскоязычных компонентов используют в работе библиотеку PDOTools, которая никогда не тестировалась на совместимость с PHP 8.0 и выше. Можно столкнуться с неожиданными сюрпризами.

Всех любителей самого свежего призываю не торопиться обновляться. Вы ничего не потеряете. Это мелкое исправление багов, не более того.

Ну а тем, кто уже успел сломать сайт — поднимайте версию PHP до 8.0 и помогайте с обратной связью. Будем подгонять компоненты под PHP 8.0 — куда деваться.
Николай Савин
01 октября 2023, 07:21
modx.pro
6
2 600
+15
Поблагодарить автора Отправить деньги

Комментарии: 19

Денис Усманов
01 октября 2023, 10:38
+1
Да, вчера столкнулся с такой проблемой на 1 проекте, решилось выдачей прав 777 на папку cache_image, прописанием этой папки в сис. настройках (почему то слетела) и очисткой кэша вручную. Не знаю, были ли какие то действия правильными или в целом нужными, но по крайней мере генерация превью в админке и на фронте заработала. В медиа источнике к сожалению, превью не отображаются местами, но это мне не мешает и заказчику не помешает тоже, ибо он будет грузить все изображения через MixedImage.
Ну и добавлю, что всё работает на phpThumbOn. И да, его я тоже переустанавливал на всякий случай.
    Kakorin Stanislav
    01 октября 2023, 14:38
    2
    +9
    Быстрое решение, без перехода на php 8
    github.com/modxcms/revolution/issues/16468#issuecomment-1708335830

    В файле core/model/phpthumb/phpthumb.class.php на 317
    Заменяем
    public function __set(string $name, mixed $value): void {
    на
    public function __set(string $name, $value): void {
      Станислав
      01 декабря 2023, 13:02
      0
      Добавлю, что у меня в modx3 с phthump эта функция (точнее в логах ошибка связанная с этой функцией) была в файле /core/vendor/james-heinrich/phpthumb/phpthumb.class.php также на 317 строке
      Александр Лунегов
      02 октября 2023, 09:35
      0
      У меня на PHP 7.3 тоже «заглючило». Перевел сайт на «восьмую» версию. На сайте очень активно используется pdoTools. Пока «полет нормальный».

      А откуда информация, что «...PHP 7.4 это основная версия для MODX 2.8.x»? В документации ко второй версии MODX рекомендуется PHP 7.2 или выше, а минимальная вообще 5.6.x.
        3.0.4 тоже после обновления «обсиренилась» пока не поднял php до 8.0, после повышения вроде всё пришло в норму. PdoTools и MIGX работают нормально.
          Василий Наумкин
          07 октября 2023, 06:19
          0
          На всякий случай, даже 8я версия PHP уже устарела и получает только обновления безопасности.

          www.php.net/supported-versions.php
            Да я сначала поставил 3 на 8.2, но потом понизил до 7,4, поскольку не все расширения работали. Сейчас смотрю некоторые подтянули, на 8.0 вроде все работают, которые у меня стоят. Но на php 8.1 сайт «пукнул» пару символов и сдох вообще.
              Николай Савин
              07 октября 2023, 16:23
              +1
              От компонентов зависит. сам MODX3 прекрасно работает на 8.1
              Я сейчас делаю модуль интернет-магазина MiniShop3 на 8.1 — ничего нигде не пукает
          Алексей Смирнов
          07 октября 2023, 22:53
          1
          +1
          Лечение проблемы c фотками в phpthumb для MODX 2.8.6 для версии php 7.4 через костыль:
          Убираем слово mixed в строке 317 в файле core/model/phpthumb/phpthumb.class.php
          Спасибо @Иван Климчук за наводку.
            Николай Савин
            08 октября 2023, 08:26
            +1
            Так то во втором комментарии это уже написано.
            Futuris
            28 октября 2023, 09:21
            +1
            Тоже столкнулся с проблемой после обновления. Перестали создаваться превьюшки галереи MS2. Причем видел этот пост, но поскольку phpThumb у меня не стоял — я подумал, что меня это не касается. Однако умные люди в чате объяснили, что phpThumb в ядро MODX вшит, независимо от того установлен он или нет)) Подсказали и метод лечения — взять папку
            core/model/phpthumb
            из установочного архива MODX 2.8.5 и перезалить на свой, обновленный до 2.8.6 сайт. После этого все опять нормально заработало.
              Евгений
              27 ноября 2023, 11:41
              0
              Изначально ставил MODX 2.8.6 на PHP 8.2 (на более младших версиях PHP получал ругань от Composer). Обнаружилась проблемка в генерации превью плагином UserFiles — при загрузке юзером превью в области вывода списка файлов видно, но при перезагрузке страницы его уже нет. Несмотря на выставленный в настройках компонента формата для превью jpg, при загрузке оно записывается как
              <img alt="..." src="data:image/png;base64,и много букв" />
              .
              Остальные превьюхи в файлменеджере MODX и через pThumb видны. Плагин использует dropzone — может быть это причиной такой баги?
                Володя
                27 ноября 2023, 12:12
                +1
                Уже поправил, обновление доступно в modstore.pro
                Евгений
                27 ноября 2023, 15:33
                0
                еще нашел что в MODX 2.8.6 на PHP 8.2 не отображаются превью в приложении Gallery
                  Евгений
                  27 ноября 2023, 22:53
                  0
                  хотя насчет Gallery пока вопрос снимается — проверил на Mohost — галерея нормально грузит превьюхи и на PHP 8.1
                  Нарыл возможную причину — версия MySQL 8.0 у моего хостера, написал в саппорт с просьбой понизить до 5.1, отпишусь о результатах.
                    Евгений
                    28 ноября 2023, 09:57
                    0
                    Так и есть, понизили версию MySQL и проблема с галереей ушла, можно удалить мой комменты по этому поводу.
                  Leo
                  Leo
                  18 марта 2024, 00:18
                  0
                  Обновился до MODX 2.8.6 и наступили проблемы с сохранением родителя с вложенными ресурсами, без вложений сохраняет ок. Когда включаешь php 7.4 все сохраняет. В итоге проблемы с сохранением вызывал плагин autoredirector — после удаления плагина сохранение заработало. Есть проблемы с работой msGallery если попытаться обновить превьюхи под php 7.4 — идет бесконечная загрузка, с php 8 и выше все ок.
                    Володя
                    18 марта 2024, 09:13
                    +1
                    В итоге проблемы с сохранением вызывал плагин autoredirector
                    modx.pro/help/24408#comment-141539
                      Leo
                      Leo
                      18 марта 2024, 13:22
                      0
                      Спасибо! easyRedirects тоже хорошо справляется с перенаправлением, только прописывать урлы нужно вручную
                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    19