Comment puis-je obtenir par programmation le préfixe de base de données Joomla en utilisant php?

13

J'accède parfois à la base de données Joomla via des scripts externes. Le problème que j'ai est que si jamais je dois changer le préfixe, je devrai de nouveau éditer mes scripts.

Existe-t-il un moyen de déterminer par programme le préfixe de base de données Joomla en utilisant php? Si oui, comment?

TryHarder
la source

Réponses:

16

Vous pouvez obtenir le préfixe en utilisant ce qui suit:

Pour l'utilisation de Joomla 2.5:

$app = JFactory::getApplication(); 
$prefix = $app->getCfg('dbprefix');

Pour l'utilisation de Joomla 3.2:

$app = JFactory::getApplication(); 
$prefix = $app->get('dbprefix');

Mais la documentation Joomla vous recommande de ne jamais modifier le préfixe. Je sais que certains logiciels de sauvegarde vous permettent de faire un changement en cours de restauration, mais ne sous-estimez pas le travail potentiellement impliqué.

Source: http://docs.joomla.org/How_to_determine_your_database_prefix

tim.baker
la source
4
La documentation Joomla ne signifie pas que vous ne devez jamais modifier le db_prefix. Il dit simplement de ne pas modifier la valeur, dans les paramètres de configuration globale, car cela cassera évidemment le site - en perdant la connexion à la base de données. La modification de la valeur dans com_config n'est pas considérée comme une modification du préfixe db, car elle n'apporte aucune modification à la base de données elle-même. Le préfixe de la base de données peut être modifié, en supposant que quelqu'un sait ce qu'il fait.
FFrewin
4

Si vous accédez à la base de données Joomla via des scripts externes, vous ne voulez peut-être pas initialiser tous les éléments Joomla uniquement pour obtenir le préfixe de la base de données. Ainsi, vous pouvez exiger le fichier configuration.php dans votre script, instancier la classe JConfig et obtenir le dbprefix

require_once $path_to_joomla_folder . "/configuration.php";
$config = new JConfig;
$dbprefix = $config->dbprefix;
csbenjamin
la source