Как программно получить префикс базы данных Joomla с помощью php?


13

Иногда я получаю доступ к Joomla DB через внешние скрипты. У меня проблема в том, что если мне когда-нибудь понадобится изменить префикс, мне нужно будет снова редактировать свои сценарии.

Есть ли способ программно определить префикс базы данных Joomla с помощью php? Если да, то как?

Ответы:


16

Вы можете получить префикс, используя следующее:

Для Joomla 2.5 используйте:

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

Для Joomla 3.2 используйте:

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

Но документация Joomla рекомендует вам никогда не изменять префикс. Я знаю, что некоторые программы резервного копирования позволяют вносить изменения частично в процессе восстановления, но не стоит недооценивать потенциально возможную работу.

Источник: http://docs.joomla.org/How_to_determine_your_database_prefix


4
Документация Joomla не означает, что вы никогда не должны изменять db_prefix. В глобальных настройках конфигурации просто сказано не менять значение, потому что это, очевидно, приведет к поломке сайта - потере соединения с базой данных. Изменение значения в com_config не считается изменением префикса БД, поскольку оно не вносит никаких изменений в саму базу данных. Префикс базы данных можно изменить, предполагая, что кто-то знает, что он делает.
FFrewin

4

Если вы обращаетесь к Joomla DB через внешние скрипты, возможно, вы не хотите инициализировать все материалы joomla только для получения префикса базы данных. Таким образом, вы можете запросить файл configuration.php внутри вашего скрипта, создать экземпляр класса JConfig и получить dbprefix

require_once $path_to_joomla_folder . "/configuration.php";
$config = new JConfig;
$dbprefix = $config->dbprefix;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.