PHPackages                             imsamurai/dynamic-database-config - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. imsamurai/dynamic-database-config

ActiveCakephp-plugin[Database &amp; ORM](/categories/database)

imsamurai/dynamic-database-config
=================================

Utility dynamically compile database config

1.0.1(11y ago)155MITPHP

Since Feb 6Pushed 11y ago1 watchersCompare

[ Source](https://github.com/imsamurai/CakePHP-DynamicDatabaseConfig)[ Packagist](https://packagist.org/packages/imsamurai/dynamic-database-config)[ Docs](http://github.com/imsamurai/CakePHP-DynamicDatabaseConfig)[ RSS](/packages/imsamurai-dynamic-database-config/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

API Documentation
-----------------

[](#api-documentation)

Check out [Dynamic Database Config API Documentation](http://imsamurai.github.io/CakePHP-DynamicDatabaseConfig/docs/master/)

Abstract
--------

[](#abstract)

[![Build Status](https://camo.githubusercontent.com/7d9eae30143c5b3aae71accc192b008274ad6e9c139ca60613ebafce00dd3f17/68747470733a2f2f7472617669732d63692e6f72672f696d73616d757261692f43616b655048502d44796e616d69634461746162617365436f6e6669672e706e67)](https://travis-ci.org/imsamurai/CakePHP-DynamicDatabaseConfig) [![Coverage Status](https://camo.githubusercontent.com/5d8f3ec2e8fc3d2c541924fe5d0d36790370893f85e1a88d58e76fc265dc1a85/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f696d73616d757261692f43616b655048502d44796e616d69634461746162617365436f6e6669672f62616467652e706e673f6272616e63683d6d6173746572)](https://coveralls.io/r/imsamurai/CakePHP-DynamicDatabaseConfig?branch=master) [![Latest Stable Version](https://camo.githubusercontent.com/0bab2741319c52bc12f9379c4242c6e09ba87e7113651ea01f6175807c9455eb/68747470733a2f2f706f7365722e707567782e6f72672f696d73616d757261692f64796e616d69632d64617461626173652d636f6e6669672f762f737461626c652e706e67)](https://packagist.org/packages/imsamurai/dynamic-database-config) [![Total Downloads](https://camo.githubusercontent.com/3ab8f452e0663fe84c79fc3f01d20491e3c33b543d0b706af7b07df80d74e3a0/68747470733a2f2f706f7365722e707567782e6f72672f696d73616d757261692f64796e616d69632d64617461626173652d636f6e6669672f646f776e6c6f6164732e706e67)](https://packagist.org/packages/imsamurai/dynamic-database-config) [![Latest Unstable Version](https://camo.githubusercontent.com/c9433ce49489efd7794b713c57cf995219df8427ea2ee49903c108dded428f0d/68747470733a2f2f706f7365722e707567782e6f72672f696d73616d757261692f64796e616d69632d64617461626173652d636f6e6669672f762f756e737461626c652e706e67)](https://packagist.org/packages/imsamurai/dynamic-database-config) [![License](https://camo.githubusercontent.com/6486cecd1cd08feafe4227000c6b3a28e39c394cbdd6e0ba793005340d8565e2/68747470733a2f2f706f7365722e707567782e6f72672f696d73616d757261692f64796e616d69632d64617461626173652d636f6e6669672f6c6963656e73652e706e67)](https://packagist.org/packages/imsamurai/dynamic-database-config)

CakePHP DynamicDatabaseConfig Plugin for more flexible handle datasource configs

Installation
------------

[](#installation)

### Step 1: Clone or download to `Plugin/DynamicDatabaseConfig`

[](#step-1-clone-or-download-to-plugindynamicdatabaseconfig)

cd my\_cake\_app/app git://github.com/imsamurai/CakePHP-DynamicDatabaseConfig.git Plugin/DynamicDatabaseConfig

or if you use git add as submodule:

```
cd my_cake_app
git submodule add "git://github.com/imsamurai/CakePHP-DynamicDatabaseConfig.git" "app/Plugin/DynamicDatabaseConfig"

```

then update submodules:

```
git submodule init
git submodule update

```

### Step 2: Extend your DATABASE\_CONFIG

[](#step-2-extend-your-database_config)

```
:: database.php ::

```

```
App::uses('DynamicDatabaseConfig', 'DynamicDatabaseConfig.Config');
class DATABASE_CONFIG extends DynamicDatabaseConfig {
	//class items
}
```

Then make configs that you want to be dynamically loaded (when class instance will be created)

```
:: database.php ::

```

```
App::uses('DynamicDatabaseConfig', 'DynamicDatabaseConfig.Config');
class DATABASE_CONFIG extends DynamicDatabaseConfig {
	//can't start with _ and must be public
	public defaultPublic() {
		return array(/* config data, like in property-config */);
	}
}
```

### Step 3: Load plugin

[](#step-3-load-plugin)

```
:: bootstrap.php ::

```

```
CakePlugin::load('DynamicDatabaseConfig');
```

\##Usage

Once you add public methods in your DATABASE\_CONFIG they will be automatically assigned to public property with same name. Now you can easily make new configs based on part of existing configs. Your old property-based configs will work as usual, unless you create method with same name.

\##Advanced usage

There exist simple dynamic rename of configs. Assume you want add default config, config for test and public enviroument. In your models used `default` config and you have information about is this public or test, for ex. constant `IS_PUBLIC_INSTALLATION`. In this case you need to add 3 configs, allow renaming and make renaming action:

```
:: database.php ::

```

```
App::uses('DynamicDatabaseConfig', 'DynamicDatabaseConfig.Config');
class DATABASE_CONFIG extends DynamicDatabaseConfig {

	//allow to rename configs
	const APPLY_NAMING_SCHEMA = true;

	//default config
	public default() {
		return array(/* config data, like in property-config */);
	}

	//public config
	public defaultPublic() {
		return array(/* config data, like in property-config */);
	}

	/local config
	public defaultLocal() {
		return array(/* config data, like in property-config */);
	}

	/* Method that will get each existing config name and try to rename it
	 * if $configName will not equals to returned value then
	 * config with returned value name will be erased with data from $configName
     *
	 * In case of current method if IS_PUBLIC_INSTALLATION is true
	 * `default` config gets data from `defaultPublic` otherwise from `defaultLocal`
	 */
	protected function _renameConfig($configName) {
		$postfix = IS_PUBLIC_INSTALLATION ? 'Public' : 'Local';
		return preg_replace('/(.*)' . $postfix . '$/', '\1', $configName);
	}
}
```

Thats all! If you have questions or any suggestions you welcome at [issues](https://github.com/imsamurai/CakePHP-DynamicDatabaseConfig/issues).

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~225 days

Total

2

Last Release

4257d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ab9b1bb43e8563f1ff3fd78cb0bf0b28b55026a9f792f2b26aefae882e1512d2?d=identicon)[imsamurai](/maintainers/imsamurai)

---

Top Contributors

[![imsamurai](https://avatars.githubusercontent.com/u/843002?v=4)](https://github.com/imsamurai "imsamurai (3 commits)")

---

Tags

pluginconfigdatabasecakephp

### Embed Badge

![Health badge](/badges/imsamurai-dynamic-database-config/health.svg)

```
[![Health](https://phpackages.com/badges/imsamurai-dynamic-database-config/health.svg)](https://phpackages.com/packages/imsamurai-dynamic-database-config)
```

###  Alternatives

[dereuromark/cakephp-databaselog

A CakePHP plugin for storing and viewing application logs in the database

44165.0k2](/packages/dereuromark-cakephp-databaselog)[pixelstudio/wp-sync-db

WordPress plugin to sync database between different installs

472.5k1](/packages/pixelstudio-wp-sync-db)[imsamurai/cakephp-serializable-behaviour

Behavior for saving and reading serialized data from/into database

147.7k3](/packages/imsamurai-cakephp-serializable-behaviour)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
