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

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Здравствуйте.

Есть сервер1, на котором размещён сайт1 (Joomla! 3) с БД1.

На сервере2 планируется разместить сайт2 (это 99% копия сайта1).

Как можно сайт2, размещённый на сервере2, подключить к БД1, размещённой на сервере1?

То есть содержимое (текстовой контент) будет одинаковым. Разница между сайт1 и сайт2 небольшая в оформлении и изображениях. Но также важно, что сайты были на разных серверах.

Спасибо.
« Последнее редактирование: 04.11.2019, 02:04:18 от slepoy »
Помог? Поставь(те) плюс в репутацию.
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
На сервере 1 разрешить удаленный доступ к базе (желательно с ограничением по IP сервера 2)
На сервере 2 прописать вместо локальной базы - подключение к удаленной. Все будет совпадать с настройками базы сервера 1, кроме адреса сервера (вместо localhost надо указать IP или домен сервера 1)

Работать должно. Но не забывайте, что при такой работе нельзя будет устанавливать новые компоненты и расширения - второй сервер увидит их в базе, но не найдет файлов (либо докидывать файлы вручную). То же самое касается добавления материалов с изображениями. Картинки будут только на одном сервере, пока вы их руками не скопируете на второй.

Если кэширование страниц будет отключено, то возможны тормоза при обращении к базе. Возможно, лучше было бы настроить синхронизацию баз данных с сервера 1 на сервер 2 раз (или больше) в сутки, чтоб далее они работали каждый со своей копией базы.

Еще можно разместить сайты на одном сервере, но на разных IP, если для вас принципиально именно это.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Цитировать
Работать должно. Но не забывайте, что при такой работе нельзя будет устанавливать новые компоненты и расширения - второй сервер увидит их в базе, но не найдет файлов (либо докидывать файлы вручную). То же самое касается добавления материалов с изображениями. Картинки будут только на одном сервере, пока вы их руками не скопируете на второй.
Это то, что нужно. Меня устроит :)

Цитировать
На сервере 1 разрешить удаленный доступ к базе (желательно с ограничением по IP сервера 2)
На сервере 2 прописать вместо локальной базы - подключение к удаленной. Все будет совпадать с настройками базы сервера 1, кроме адреса сервера (вместо localhost надо указать IP или домен сервера 1)
Вот в этом сложность: что (и как именно) следует сделать на стороне сервера (если панель ISPmanager), а что в бэкенде Joomla. Надеюсь, что Google мне поможет :)

Спасибо.
Помог? Поставь(те) плюс в репутацию.
*

sivers

  • Живу я здесь
  • 2587
  • 359 / 0
Удаленный доступ через ISP (серевр 1):
  • (слева в меню) Настройки - Серверы баз данных. Выбрать свой сервер БД, кл. Изменить, поставить галку на Удаленный доступ
  • (слева в меню) Инструменты - Базы данных, выбрать свою БД, кликнуть кн. Пользователи, выбрать пользователя, под которым работает сайт, кл. Изменить и поставить там "Удаленный доступ".
  • (слева в меню) Система - Брандмауэр. Создать. Действие - частично разрешить, протокол - TCP, порт - 3306 (если не был изменен для mysql), доверенные IP адреса - тут перечислить с каких адресов можно соединяться с базой (адрес сервера 2), не забудьте на всякий случай 127.0.0.1
На втором сервере в качестве данных доступа к базе укажите все то, что указано на первом. только в качестве адреса сервера вместо localhost пропишите IP сервера 1.
Третий пункт (брандмауэр) можете сделать в последнюю очередь, когда проверите соединение. Иначе, если не заработает, не будете знать почему.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Благодарю за уделенное время. то, что надо. Все сработало  ::)
Помог? Поставь(те) плюс в репутацию.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Все изменения появляются в старой базе данных и ftp после смены хостинга

Автор makena0606

Ответов: 2
Просмотров: 2197
Последний ответ 09.02.2024, 10:21:47
от Vastriet
Пропала база данных в phpMyAdmin

Автор kazbec

Ответов: 3
Просмотров: 1438
Последний ответ 16.11.2023, 22:59:54
от Vastriet
Call to a member function NewColorizeImage() on null при переходе PHP 7 [Решено]

Автор Eholov

Ответов: 3
Просмотров: 3208
Последний ответ 17.03.2023, 11:03:04
от Olexa
Перенос отдельных таблиц из одной базы данных в другую для обновления Joomla

Автор alex-nosov1980

Ответов: 3
Просмотров: 1329
Последний ответ 13.09.2021, 08:58:55
от alex-nosov1980
Полностью запретить редактирование профиля и учётных данных

Автор vityushka

Ответов: 7
Просмотров: 1603
Последний ответ 15.02.2021, 09:20:27
от sivers