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

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Здравствуйте. Такой вопрос, подключаю php файлы через плагин в материл Joomla.

И пытаюсь получить значение переменной:
$input = JFactory::getApplication()->input;
echo $input->get('znachenie');

Но ничего не выводит, если я пытаюсь это делать в подключаемых php файлах.
Подскажите как это решить? я хоче использовать в php файлах переменные JFactory
Заранее спасибо за помощь
*

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
подключил, получилось так:
Код

define( '_JEXEC', 1 );
if ( file_exists( __DIR__ . '/defines.php' ) ) {
    include_once __DIR__ . '/defines.php';
}
if ( !defined( '_JDEFINES' ) ) {
    define( 'JPATH_BASE', __DIR__ );
    require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';


$input = JFactory::getApplication()->input;
echo $input->get('znachenit');

но все равно не выводит ничего
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Подключение выше для файов, которые лежат в корне установки Joomla. У вас он в корне лежит? Если нет, там дальше написано:

Цитировать
Если мы например хотим файл положить в папку с модулем, например в /modules/mod_modulename/ajax.php И использоваьть тот же код, только в строку
   
define( 'JPATH_BASE', __DIR__ );

заменить на

define( 'JPATH_BASE', __DIR__ . '/../../' );
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[решено] Использование model - setState для фильтра по дате

Автор effrit

Ответов: 8
Просмотров: 1722
Последний ответ 13.10.2018, 19:13:49
от effrit
Чем JFactory::getApplication()->input лучше JRequest::getVar()?

Автор Shustry

Ответов: 43
Просмотров: 15714
Последний ответ 13.01.2017, 12:18:41
от Septdir
Вопрос по PROFILER и JFactory

Автор Haybul

Ответов: 2
Просмотров: 1851
Последний ответ 02.08.2014, 04:33:57
от Haybul
Использование JTable

Автор Xiss

Ответов: 4
Просмотров: 1333
Последний ответ 25.02.2014, 19:37:50
от Xiss
Использование нескольких таблиц в базе

Автор Yoome

Ответов: 1
Просмотров: 1278
Последний ответ 18.02.2013, 19:28:08
от b2z