Consultar desde php la rama de git en la que te encuentras.

A vece podemos necesitar saber en que rama de git estamos, los motivos pueden ser varios, en mi caso, durante el mantenimiento de un proyecto se dio el caso que una funcionalidad quedó congelada un tiempo, el problema es que esta funcionalidad suponía agregar un campo nuevo a un tipo de contenido, y la base de datos quedaba modificada y todo el rato la feature del tipo de contenido indicaba todo el rato que estaba sobre escrita.

No se a vosotros, pero ¡¡¡¡odio tener features sobre escritas!!!!!

En mi caso lo que he hecho ha sido agregar en el archivo settings.php el siguiente código justo después de la variable $databases.

<?php
$shellOutput
= array();
exec('git branch | ' . "grep ' * '", $shellOutput);
foreach (
$shellOutput as $line) {
 
// la rama en curso se forma de la forma siguiente :* nombre_rama,
  // por lo tanto usamos strpos para determinar cual es la rama en curso.
 
if (strpos($line, '* ') !== false) {
   
$branch = trim(strtolower(str_replace('* ', '', $line)));
   }
}
//definimos la bbdd en función de la rama de git en la que estamos.
switch($branch) {
  case
'master':
   
$databases['default']['default']['database'] = 'ddbbmaster';
  break;
  case
'staging':
  
$databases['default']['default']['database'] = 'ddbbstaging';
  break;
}
?>

Con esto en función de la rama de git en la que estemos se define una u otra bbdd.

Lo malo o negativo es que cuando creamos ramas temporales de trabajo en local hay que actualizar la configuración de settings.php para que coja una u otra bbdd.