In Joomla 5 werden die Zeilen $db = Factory::getDbo(); bzw. $db = JFactory::getDbo(); für das Initialisieren eines Datenbank-Objekts (= Aufbau einer Datenbankverbindung) nicht mehr funktionieren. Deshalb werden sie schrittweise aus dem Joomla-4-Core entfernt; auch, um zahlreiche Deprecated-Meldungen (= Veraltet) aus den Joomla-Logs rauszubekommen. Die empfohlene, neue Schreibweisen-Variante geht jetzt so:

© Jutta M. Jenning/ www.mjpics.de
$db = Factory::getContainer()->get('DatabaseDriver');

--- bzw. Langschreibweise, falls keine ...\Factory-use-Zeile am Anfang der Datei:---

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

Natürlich funktionieren die alten, aus Joomla 3 bekannten Schreibweisen weiterhin mit Joomla 4. Die neue funktioniert aber nicht unter Joomla 3.

Wer sich die Mühe machen möchte, kann eine Versions-Weiche in seinem Code verwenden:

<?php
defined('_JEXEC') or die; 

# use-Zeile am Anfang der Datei:
use Joomla\CMS\Factory;

# ... später im Code dann:

if (version_compare(JVERSION, '4', 'lt'))
{
	$db = Factory::getDbo();
}
else
{
	$db = Factory::getContainer()->get('DatabaseDriver');
}