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

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Код
$app->allowCache(true);
$app->setHeader('Cache-control', 'public');
$app->setHeader('Last-Modified', gmdate('D, d M Y H:i:s', time()).' GMT');
$app->setHeader( 'Expires', gmdate("D, d M Y H:i:s", time() + 60*60*24*365). " GMT", true);
Всё ставится, кроме Expires, он по-прежнему 15 минут. Почему?
Joomla 3.6+
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Expires http заголовок не ставится
« Ответ #1 : 12.06.2018, 08:33:12 »
потому что блин
Спойлер
[свернуть]
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Expires http заголовок не ставится
« Ответ #2 : 12.06.2018, 08:37:45 »
Это что значит?
Видел я этот код, когда пытался нагуглить ответ
И еще нашел, что вроде у самих разработчиков всё работает
https://github.com/joomla/joomla-cms/pull/9836
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Expires http заголовок не ставится
« Ответ #3 : 12.06.2018, 08:43:40 »
ну как что? что означает
Код
$this->setHeader('Expires', gmdate('D, d M Y H:i:s', time() + 900). ' GMT');
?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Expires http заголовок не ставится
« Ответ #4 : 12.06.2018, 08:55:50 »
Почему по моей ссылке разработчики Joomla пишут, что у них все работает с изменением Expires?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Expires http заголовок не ставится
« Ответ #5 : 12.06.2018, 10:12:35 »
а как оно может работать, если заголовок устанавливается непосредственно перед отправкой заголовка и выводом body?
Код
$this->sendHeaders();

echo $this->getBody();

сори, ошибся. не доглядел что у вас там $app->allowCache(true) выставляется, а с ним не так заголовок ставится, если 'Expires' был задан то не должен перезаписываться. хм, тогда не могу сказать почему у вас не выставляется. должен выставляться. возможно что то есть, что его переписывает. на чистой Joomla пробуете, или много расширений установлено уже?
« Последнее редактирование: 12.06.2018, 10:19:27 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Expires http заголовок не ставится
« Ответ #6 : 12.06.2018, 10:24:39 »
Да, на гитхабе так и написано, что $app->allowCache(true) нужен, чтоб Expires работал. И тем не менее...

Нет расширений никаких.
15 минут - джумловский интервал.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Expires http заголовок не ставится
« Ответ #7 : 12.06.2018, 10:56:55 »
15 минут - джумловский интервал.
чего то мне кажется что это не жумловский интервал... пробовали менять его? меняется в заголовке?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Expires http заголовок не ставится
« Ответ #8 : 12.06.2018, 11:09:18 »
Код
$this->setHeader('Expires', gmdate('D, d M Y H:i:s', time() + 900). ' GMT');

не менял
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Expires http заголовок не ставится
« Ответ #9 : 12.06.2018, 11:43:06 »
ну вот попробуйте. мне кажется это ничего не даст.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Expires http заголовок не ставится
« Ответ #10 : 12.06.2018, 12:39:27 »
Да, это он срабатывает
Код
\libraries\joomla\application\web.php

$this->setHeader('Expires', gmdate('D, d M Y H:i:s', time() + 900). ' GMT');
строка 438
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Expires http заголовок не ставится
« Ответ #11 : 12.06.2018, 13:13:00 »
попробую у себя проверить чуть позже, сейчас некогда.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ruslan13

  • Захожу иногда
  • 156
  • 2 / 0
Re: Expires http заголовок не ставится
« Ответ #12 : 12.06.2018, 13:46:18 »
Cache-Control max-age превалирует над Expires, так что я забил на поиск хаков
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переход с http на https

Автор Andrey67

Ответов: 3
Просмотров: 885
Последний ответ 10.09.2024, 17:01:58
от Andrey67
Заголовок в beez3

Автор rezchik

Ответов: 2
Просмотров: 619
Последний ответ 30.01.2024, 21:38:18
от rezchik
Заголовок под картинкой

Автор phvsfpgs

Ответов: 2
Просмотров: 879
Последний ответ 27.09.2023, 22:58:01
от all_zer
Ошибка страницы http error 500

Автор raevmara90

Ответов: 0
Просмотров: 840
Последний ответ 09.02.2022, 07:09:44
от raevmara90
Как сделать вводный текст чтобы его заголовок выводился как h2 а не h1 Joomla 3?

Автор Алексей358

Ответов: 51
Просмотров: 2150
Последний ответ 05.10.2021, 15:17:58
от draff