---
title: "Совет по Joomla: $db->getQuery(true) стал устаревшим. - WebTolk"
description: "Как вместо $db->getQuery(true) применять $db->createQuery() в Joomla. Как экономить память сервера для PHP при написании кода CLI приложений в Joomla. Примеры кода."
url: "https://web-tolk.ru/blog/sovet-po-joomla-usddb-getquery-true-stal-ustarevshim"
date: "2025-07-03T08:24:06+00:00"
language: "ru-RU"
---

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

 Автор: Сергей Толкачев Создано: 03 июля 2025 Обновлено: 01 сентября 2025 Просмотров: 958    ![](https://web-tolk.ru/blog/images/blog/sovet-po-joomla-usddb-getquery-true-stal-ustarevshim/header.webp)

Раньше при создании запросов в базу данных мы всегда получали объект запроса с помощью метода `getQuery()`. Если передавался параметр `$new = true`, то получали новый запрос. Если без - последний.

```
<?php
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()` останется, но, скорее всего, будет выполнять функцию только геттера - получения текущего запроса.

Однако, следует помнить о том, что объект Database - один из самых "тяжёлых" в Joomla. Поэтому если вы, например, пишете CLI приложение для Joomla, то память сервера лучше экономить. Метод `createQuery()` создаёт новый объект. Вместо этого можно взять уже существующий объект и очистить его значения методом `clear()`.

```
<?php
use Joomla\CMS\Factory;
use Joomla\Database\ParameterType;

$db = Factory::getContainer()->get('DatabaseDriver');

$query = $db->getQuery(new: true);
$query->select($db->quote('*'))->from($db->quotName('#__content'));
// и выполняем запрос
$result = $db->setQuery($query)->loadAssoclist();

// очистим существующий объект Database от данных предыдущего запроса
$query->clear();
// Строим новый запрос
$query->delete($db->quoteName('#__any_table'))
            ->where('id = :id')
            ->bind(':id',  (int) $id, ParameterType::INTEGER);
// Выполним новый запрос
$db->setQuery($query)->execute();
```

- [Пост в Telegram канале](https://t.me/webtolkru/641)

## Об авторе

![Толкачев Сергей Юрьевич](https://web-tolk.ru/images/uslugi/sergey-tolkachyov-apr-2023.webp)

### Толкачев Сергей Юрьевич

Joomla-разработчик. [Контрибьютер ядра Joomla](https://github.com/joomla/joomla-cms/pulls?q=is%3Apr+author%3Asergeytolkachyov+). Один из ведущих Telegram-канала русскоязычного Joomla-сообщества [JoomlaFeed](https://t.me/joomlafeed), один из модераторов [чата русскоязычного Joomla-сообщества](https://t.me/joomlaru). Мои расширения в официальном маркетплейсе расширений Joomla - [Joomla Extensions Directory](https://extensions.joomla.org/profile/profile/details/528051/). Имею публикации в [официальном журнале международного Joomla-сообщества - Joomla Community Magazine](https://magazine.joomla.org/authors/sergeytolkachyov) и на [официальном сайте русскоязычного Joomla-сообщества](https://joomlaportal.ru/users/sergey-tolkachyov).

Муж. Отец 3 детей.

Россия, Саратов.

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/blog",
                "name": "Блог"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "name": "Совет по Joomla: $db->getQuery(true) стал устаревшим."
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/blog/sovet-po-joomla-usddb-getquery-true-stal-ustarevshim",
            "name": "Совет по Joomla: $db->getQuery(true) стал устаревшим. - WebTolk",
            "description": "Как вместо $db->getQuery(true) применять $db->createQuery() в Joomla. Как экономить память сервера для PHP при написании кода CLI приложений в Joomla. Примеры кода. ",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "Article",
            "@id": "https://web-tolk.ru/#/schema/com_content/article/142",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebPage/base"
            }
        }
    ]
}
```
