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

denism300

  • Захожу иногда
  • 209
  • 5 / 0
Никак не могу разобраться как с учетом новой архитектуры в J4 правильно подключить библиотеку.
Допустим, мне надо подключить someLib
Я скачиваю библиотеку, кидаю ее в папку site_root/libraries/vendor/
Как ее дальше подключать? В провайдере?
На просторах инфы не нашел
« Последнее редактирование: 27.12.2022, 12:22:55 от denism300 »
*

sivers

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

denism300

  • Захожу иногда
  • 209
  • 5 / 0
Если нужна на всем сайте, то можно подключить в плагине (любом, но лучше в вашем). Еще можно создать в корне сайта файл defines.php и подключить в нем (сам файл подключается автоматически перед инициализацией ядра
библиотека нужна только в конкретном модуле
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
библиотека нужна только в конкретном модуле
Тогда переопределите макет для этого модуля (если еще не сделали), выберите его в настройках модуля, а в самом макете пропишите:
Код
include_once 'путь-к-библиотеке.php';
или так (эквивалентно):
Код
include_once('путь-к-библиотеке.php');
Если в библиотеке есть autoload.php (обычно в папке vendor), то лучше подключать именно его (остальное он сам подключит).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

denism300

  • Захожу иногда
  • 209
  • 5 / 0
Тогда переопределите макет для этого модуля (если еще не сделали), выберите его в настройках модуля, а в самом макете пропишите:
Код
include_once 'путь-к-библиотеке.php';
или так (эквивалентно):
Код
include_once('путь-к-библиотеке.php');
Если в библиотеке есть autoload.php (обычно в папке vendor), то лучше подключать именно его (остальное он сам подключит).
немного не о том речь.
как заинклудить средствами php я в курсе.

вопрос был про самописный модуль
т.е., к примеру, я пишу модуль mod_mymod
в нем я хочу библиотеку coolPHPLib
при установке модуля я кидаю ее в site_root/libraries/vendor/ а как дальше правильно подключить библиотеку с учетом новой архитектуры J4 - хз.

Насколько я понял, это делается в диспетчере, но примеров и документации не нашел
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
Оставить библиотеку в папке модуля и инклудить оттуда обычным способом - не вариант?
Тогда ищите. Скорее всего должно работать подключение через use аналогично подключению библиотек Joomla, если разместить там же.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

denism300

  • Захожу иногда
  • 209
  • 5 / 0
Оставить библиотеку в папке модуля и инклудить оттуда обычным способом - не вариант?
Тогда ищите. Скорее всего должно работать подключение через use аналогично подключению библиотек Joomla, если разместить там же.
вариант, конечно.
Но хочется понять как оно должно быть с учетом архитектуры, с целью изучения, так сказать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Рекурсия в модуле

Автор alpha_ru

Ответов: 19
Просмотров: 1699
Последний ответ 20.07.2017, 19:25:11
от passer
Дополнительное поле в модуле

Автор paskal

Ответов: 21
Просмотров: 2593
Последний ответ 27.08.2016, 00:59:55
от robert
Запись в БД из формы в плагине (модуле). Как!

Автор Sergeyy

Ответов: 13
Просмотров: 1562
Последний ответ 13.11.2015, 11:01:18
от Sergeyy
Ошибка 1005 при sql-запросах в своем модуле

Автор dv-cto

Ответов: 2
Просмотров: 1509
Последний ответ 07.02.2015, 21:30:50
от dv-cto
Подключение рефералов. Обработка входящей ссылки

Автор vita1971

Ответов: 3
Просмотров: 1608
Последний ответ 03.02.2015, 16:09:50
от Ренат