¿Cómo puedo obtener programáticamente el prefijo de la base de datos de Joomla usando php?

13

A veces accedo a Joomla DB a través de scripts externos. El problema que tengo es que si alguna vez necesito cambiar el prefijo, también tendré que editar mis scripts.

¿Hay alguna manera de determinar mediante programación el prefijo de la base de datos de Joomla usando php? Si es así, ¿cómo?

Esforzarse más
fuente

Respuestas:

16

Puede obtener el prefijo usando lo siguiente:

Para Joomla 2.5 use:

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

Para Joomla 3.2 use:

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

Pero la documentación de Joomla recomienda que nunca modifique el prefijo. Sé que algunos softwares de respaldo le permiten hacer un cambio a la mitad de una restauración, aunque no subestime el trabajo potencialmente involucrado.

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

tim.baker
fuente
44
La documentación de Joomla no significa que nunca debe modificar el db_prefix. Simplemente dice que no cambie el valor, en la configuración global, porque obviamente esto romperá el sitio, al perder la conexión a la base de datos. Cambiar el valor en com_config no se considera un cambio de prefijo db, ya que no realiza ningún cambio en la base de datos en sí. El prefijo de la base de datos se puede cambiar, suponiendo que alguien sepa lo que está haciendo.
FFrewin
4

Si está accediendo a Joomla DB a través de scripts externos, tal vez no quiera inicializar todas las cosas de Joomla solo para obtener el prefijo de la base de datos. Entonces, puede requerir el archivo configuration.php dentro de su script, instanciar la clase JConfig y obtener el dbprefix

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