Новости Joomla

Совет по Joomla: $db->getQuery(true) стал устаревшим

Совет по Joomla: $db->getQuery(true) стал устаревшим

👩‍💻 Совет по Joomla: $db->getQuery(true) стал устаревшим.Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода

getQuery(). Если передавался параметр
$new =
true, то получали новый запрос. Если без - последний.

use Joomla\CMS\Factory;$db = Factory::getContainer()->get('DatabaseDriver');$query = $db->getQuery(new: true);// и строим запрос
Под капот Joomla 4 вошёл Joomla Framework (PHP фреймворк а-ля Laravel, Yii и т.д.), а для Joomla 5 он обновился - версия 3.4.1 вышла 6 октября 2023г. В методе фреймворка есть примечание о том, что параметр
$new, который передавался в метод
getQuery() помечен как устаревший и будет удалён в версии фреймворка 4.0.
The parameter $new is deprecated and will be removed in 4.0, use %s::createQuery() instead.В Joomla 4 версия Joomla Framework была 2.x., в Joomla 5 - 3.x. Поэтому есть предположение, что с выходом Joomla 6 обновится и версия фреймворка - станет 4.0. Поэтому для получения объекта для новых запросов следует использовать метод
createQuery(). Он уже представлен в ядре и широко используется. При этом метод
getQuery() останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.
@joomlafeed#joomla #php #разработка

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

klara7

  • Захожу иногда
  • 311
  • 4 / 1
Привет!
Joomla 3.10.3, вирт 3.8.8, PHP 7.4 - когда сохраняешь товар, пропадает выбранная категория, товар вываливается в общий список.
При включении максимального режима отображения ошибок выходит эта:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; plgSystemMarcosinterceptor has a deprecated constructor
in /var/www/u0067622/public_html/ufa-kamin.ru/plugins/system/marcosinterceptor/marcosinterceptor.php on line 13

Сама строка выглядит так
Код
class plgSystemMarcosinterceptor extends JPlugin{

Больше никаких сообщений нет. Не уверена что это происходит именно из-за этой ошибки.
Пробовала понижать версию PHP, установила плагин JQuery Easy, настроила JQuery+Ul - не помогло.
Когда возникла проблема не известно - обновляли, но товар давно не добавляли, так что откатиться не вариант.
Что может быть? Заранее благодарна всем неравнодушным ^-^
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
Эта ошибка убирается путем переименования метода класса, совпадающего с именем класса (обычно идет первым) на имя метода "__construct". Но причина проблемы может быть и не с этим связана.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Так можно отключить плагин marcosinterceptor и тестировать .
установила плагин JQuery Easy
Напрасно, мне давно уже не помогает .
Смотрите ошибки в консоли и подключение скриптов в конфиге Вирт .
*

klara7

  • Захожу иногда
  • 311
  • 4 / 1
Эта ошибка убирается путем переименования метода класса, совпадающего с именем класса (обычно идет первым) на имя метода "__construct". Но причина проблемы может быть и не с этим связана.
Спасибо, что откликнулись!
Вот как выглядит все выражение
Код
class plgSystemMarcosinterceptor extends JPlugin{
function plgSystemMarcosinterceptor( &$subject, $config ){
parent::__construct( $subject, $config );
}
Что еще может косячить?
*

klara7

  • Захожу иногда
  • 311
  • 4 / 1
Так можно отключить плагин marcosinterceptor и тестировать .Напрасно, мне давно уже не помогает .
Смотрите ошибки в консоли и подключение скриптов в конфиге Вирт .
Ошибки включала, ничего не выводит. Написала вам в личку, вопрос относительно помощи
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
class plgSystemMarcosinterceptor extends JPlugin{
function plgSystemMarcosinterceptor( &$subject, $config ){
parent::__construct( $subject, $config );
}
поменяйте на
Код
class plgSystemMarcosinterceptor extends JPlugin{
function __construct( &$subject, $config ){
parent::__construct( $subject, $config );
}
а еще лучше вот на это:
Код
class plgSystemMarcosinterceptor extends JPlugin{
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

klara7

  • Захожу иногда
  • 311
  • 4 / 1
class plgSystemMarcosinterceptor extends JPlugin{
Не помогло
*

klara7

  • Захожу иногда
  • 311
  • 4 / 1
Проблема решилась сама, но благодарю за помощь sivers. Кешерование на сайте отключено, но видимо, у хостера или провайдера оно было довольно жесткое.
Всем спасибо! ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Расчёт стоимости товара в VirtueMart за периметр

Автор NIKOLY

Ответов: 0
Просмотров: 36
Последний ответ 04.07.2025, 09:18:31
от NIKOLY
Как вывести ID товара в описании товара?

Автор Stasweb

Ответов: 8
Просмотров: 3824
Последний ответ 28.11.2022, 23:22:27
от Evgen Kulibin
Joomla 3 + VM + Universal AJAX Live Search - как вывести картики товара в поиске?

Автор PSN

Ответов: 10
Просмотров: 9383
Последний ответ 27.03.2022, 17:29:00
от Evgen Kulibin
Как сделать - Вывод модуля на всех страницах - Кроме в карточке товара?

Автор artem_wrong

Ответов: 15
Просмотров: 3015
Последний ответ 15.02.2022, 15:07:34
от beliyadm
Вывод дополнительного описания в карточке товара

Автор Litop

Ответов: 1
Просмотров: 2524
Последний ответ 24.11.2021, 22:26:21
от Litop