Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 753 Просмотров
*

fsv

  • Живу я здесь
  • 2784
  • 412 / 2
Вопрос из телеграм-канала "Joomla форум"
Цитата: Dmitry Rekun
В postflight установки доступна старая версия компонента? Как ее получить?
@b2z ,
Кроме сессии можно посмотреть, как этот параметр ($this->fromVersion) прокидывается в J4 - administrator/components/com_admin/script.php. Мне кажется, так интереснее, чем через сессию. Работоспособность рецепта на компоненте не проверял.

Спойлер
[свернуть]


Веб-разработка: заказ. Только новая разработка.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Информация из preflight в postflight
« Ответ #1 : 14.11.2022, 14:26:01 »
Аха, спасибо. Получается, достаточно разместить версию в свойстве объекта. Видимо объект остаётся неизменным на протяжении процесса установки.

Я сделал пока так
preflight
Код
Factory::getApplication()->getSession()->set('nc.oldversion', $manifest->version);
postflight
Код
Factory::getApplication()->getSession()->get('nc.oldversion')

Но несомненно в свойстве объекта проще  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться