Новости 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 Гость просматривают эту тему.
  • 1 Ответов
  • 1017 Просмотров
*

RAZORG1991

  • Захожу иногда
  • 349
  • 6 / 0
Онлайн пользователя происходит только при авторизаиции, т.е. пользователь авторизировался и соответственно он находится онлайн (иконка на форуме). В форме авторизации ставится галочка "запомнить меня", соответственно в следующий раз пользователю не нужно будет проходить авторзацию.
Но заметил, что Kunena как-то неправильно определяет находится ли пользователь на сайта или нет. Т.е. она показывает скорее пользователей которые прошли авторизацию - и соответственно считает их "онлайн". Закрываю страницу браузера, сам браузер (не выходя из профиля), захожу другим браузером - пользователь висит онлайн (хотя по факту его там уже нет). Смотрю минут через 15 - все равно висит "онлайн".
Может я чего-то где-то не улавливаю, или это стоит большое время сессии (так а где его тогда подправить?).

Прошу помощи
*

ChaosHead

  • Moderator
  • 5242
  • 451 / 13
Конфигурация - Общие - Использовать кэширование, Время кэша
Цитировать
Этот параметр влияет на такие элементы, как Кто на форуме и Статистика, их содержание изменяется только когда истекает срок действия кэша. Чтобы сохранить действительные данные, рекомендуется использовать небольшие значения, — 1-3 минуты.
Проверяйте, что у вас стоит.

Потом, если вы входите неавторизованным пользователем, то используется ещё кэшь Joomla. Для неавторизованных пользователей упор сделан на скорость работы. Вы можете отключить плагин - система кэшь. Но тогда возрастёт нагрузка на хостинг.
« Последнее редактирование: 02.04.2014, 10:28:40 от ChaosHead »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться