Prenons un projet PHP de base dont une exemple existe dans le projet open source Ast'r.
Nous allons créer un fichier 'default_mysql_conf.properties' qui sera envoyé dans le dépôt SVN.
Dans ce fichier on écrit ceci:

host=localhost
name=egallery
user=root
pass=

Ce seront les paramètres par défaut de la BDD.
Avec ce fichier nous allons créer le fichier MysqlConfig.php qui va gérer la configuration de la BDD.

<?php
    /**
     * Defines the configuration of Mysql.
     */

    class MysqlConfig
    {
        /**
         * Creates a MysqlConfig
         * @param String $file The customize file path for mysql connection.
         */

        public function MysqlConfig( $file = null )
        {
            $this->file = null ;
          
            // Tests if the custom file exists
            if( file_exists( $file ) )
            {
                $this->file = $file ;
            }
            else
            {
                // Tests if the mysql config file exists.
                if( file_exists( self::MYSQL_CONFIG ) )
                {
                    $this->file = self::MYSQL_CONFIG ;
                }
                else
                {
                    if( file_exists( self::DEFAULT_MYSQL_CONFIG ) )
                    {
                        $this->file = self::DEFAULT_MYSQL_CONFIG ;
                    }
                }
            } 
            
            if( $this->file != null )
            {
                try
                {
                    $handle = fopen( $this->file , "r" ) ;
                    while( !feof( $handle ) )
                    {
                        $page        = fgets( $handle , 4096 ) 
                        $page        = explode( '=' , trim( $page ) ) ;
                        $prop        = trim( $page[0] ) ;
                        $value       = trim( $page[1] ) ;
                        $this->$prop = $value ;
                    }
                    fclose( $handle ) ;
                }
                catch( Exception $e )
                {
                    throw  new Exception( "The mysql config file doesn't exist!" ) ;
                }
            }
            else
            {
                throw new Exception( "The mysql config file doesn't exist!" ) ;
            }
        }
                

        /**
         * The default path of default_mysql.properties file.
         * @var String
         */
        const DEFAULT_MYSQL_CONFIG = "../config/default_mysql.properties" ;
        
        /**
         * The default path of mysql.properties.
         * @var String
         */
        const MYSQL_CONFIG = "../config/mysql.properties" ;
        
        /**
         * The name of the config file.
         * @var String
         */
        public $file ;
        
        /**
         * The db host.
         * @var String
         */ 
        public $host ;
            
        /**
         * The db name.
         * @var String
         */
        public $name ;
        
        /**
         * The db user password.
         * @var String
         */ 
        public $pass ;
        
        /**
         * The db user name.
         * @var String
         */ 
        public $user ;

    }
?>

Pour personnalisé la configuration de la BDD il suffit :
 - De créer un fichier mysql.properties
 - De l'ignorer sur le svn:

# lancer la commande, en partant du principe qu'on se situe en dessous du répertoire config.
svn propedit svn:ignore config/

# ecrire le nom des fichiers, les extensions ( *.ext ) ou les répertoire ( myFolder/ )
mysql.properties

 
 - D'y mettre ses propres valeurs.
Ex. pour MAMP:
host=localhost:8889
name=egallery
user=root
pass=root
Note: La class MysqlConfig permet également de personnalisé le nom du fichier de configuration.
Pour ce servir de la class MysqlConfig il suffit de l'instancier dans le code et envoyer ses propriétés pour se connecter à la BDD.
CF. README.txt
Depuis plusieurs mois je travaille avec le framework symfony.
Voilà comment je le configurerais non seulement pour le travail d'équipe mais également pour le déploiement de plusieurs projets symfony sur le même serveur avec un seul framework à maintenir.
Pour ce connecter à la Base de données, l'ORM de symfony (propel ou doctrine) a besoin du fichier config/database.yml.
J'ignore ce dernier sur le svn et je crée un fichier config/database.yml.temp que j'envoie dans le dépôt svn avec la configuration de base.

Ainsi, quelle que soit l'environnement de développement on peut avoir une configuration de base de données personnalisée.
De la même manière on peut imaginer personnalisé le chargement du framework symfony au sein des projets.
En effet, il est quand même plus pratique de n'avoir qu'un seul noyau des versions du framework sur un serveur qui héberge plusieurs projets symfony.
Admettons que sur mon windows je place symfony dans un répertoire c:\libs\symfony-1.2.9, sur unix (Mac ou Linux) je le stocke dans un répertoire /libs/symfony-1.2.9
Dans le répertoire config/ de chaque projet symfony je crée un fichier core.properties.default dans lequel j'écris ceci:

<?php
    $sfLibsPath = "/libs/symfony-1.2.9" ;
?>

J'envoie ce fichier sur le svn et je le copie avec le nom core.properties que j'ignore du svn pour pouvoir changer la config selon les environnements.
Dans le fichier config/ProjectConfiguration.class.php j'écris ceci:

<?php
$coreFile =
dirname( __FILE__ ) . '/core.properties' ;
if( $coreFile && filesize( $coreFile ) > 0 )
{
  require_once $coreFile ;
}
else
{
  require_once $coreFile . '.default' ;
}
require_once $sfLibsPath . '/lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    // for compatibility / remove and enable only the plugins you want
    $this->enableAllPluginsExcept( array( 'sfPropelPlugin' , 'sfCompat10Plugin' ) ) ;
  }
}
?>

Grâce à la classe sfCoreAutoload de symfony, je n'ai plus besoin de définir les imports de fichiers dans mes nouvelles classes.
Donc si je viens à travailler sous windows je n'aurais qu'à créer le fichier core.properties.temp dans le répertoire config/ de mon projet de d'écrire ceci:

<?php
    $sfLibsPath = "c:\libs\symfony-1.2.9" ;
?>

Note: Mes fichiers de configuration n'ont pas d'extension .php pour mieux les différencier des fichiers classiques. 
  Pour PHP c'est la même chose à partir du moment où on fait un include ou un require et que le script est bien écrit avec les balises <?php ?>