summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Lev <[email protected]>2011-05-15 17:03:48 -0700
committerJordan Lev <[email protected]>2011-05-15 17:03:48 -0700
commit9f382150234e6ce398ec4519d1033e476d4b47f0 (patch)
tree76be117e3deb08f9fc873950cffb769c61da0fd0
parentc956f1c8250cfb07c29f5b14a43e2ca30747e2d6 (diff)
configure() function can now accept an array of settings (also updated README to reflect this)
-rw-r--r--README.markdown8
-rw-r--r--idiorm.php29
2 files changed, 28 insertions, 9 deletions
diff --git a/README.markdown b/README.markdown
index 2e6e6b5..2b31155 100644
--- a/README.markdown
+++ b/README.markdown
@@ -391,6 +391,10 @@ Other than setting the DSN string for the database connection (see above), the `
ORM::configure('setting_name', 'value_for_setting');
+A shortcut is provided to allow passing multiple key/value pairs at once.
+
+ ORM::configure(array('setting_name_1' => 'value_for_setting_1', 'setting_name_2' => 'value_for_setting_2', 'etc' => 'etc'));
+
#### Database authentication details ####
Settings: `username` and `password`
@@ -401,6 +405,10 @@ Some database adapters (such as MySQL) require a username and password to be sup
ORM::configure('username', 'database_user');
ORM::configure('password', 'top_secret');
+Or you can combine the connection setup into a single line using the configuration array shortcut:
+
+ ORM::configure(array('connection_string' => 'mysql:host=localhost;dbname=my_database', 'username' => 'database_user', 'password' => 'top_secret'));
+
#### PDO Driver Options ####
Setting: `driver_options`
diff --git a/idiorm.php b/idiorm.php
index 4d454cb..3fb850a 100644
--- a/idiorm.php
+++ b/idiorm.php
@@ -148,18 +148,29 @@
/**
* Pass configuration settings to the class in the form of
* key/value pairs. As a shortcut, if the second argument
- * is omitted, the setting is assumed to be the DSN string
- * used by PDO to connect to the database. Often, this
- * will be the only configuration required to use Idiorm.
+ * is omitted and the key is a string, the setting is
+ * assumed to be the DSN string used by PDO to connect
+ * to the database (often, this will be the only configuration
+ * required to use Idiorm). If you have more than one setting
+ * you wish to configure, another shortcut is to pass an array
+ * of settings (and omit the second argument).
*/
public static function configure($key, $value=null) {
- // Shortcut: If only one argument is passed,
- // assume it's a connection string
- if (is_null($value)) {
- $value = $key;
- $key = 'connection_string';
+ if (is_array($key)) {
+ // Shortcut: If only one array argument is passed,
+ // assume it's an array of configuration settings
+ foreach ($key as $one_key => $one_value) {
+ self::configure($one_key, $one_value);
+ }
+ } else {
+ if (is_null($value)) {
+ // Shortcut: If only one string argument is passed,
+ // assume it's a connection string
+ $value = $key;
+ $key = 'connection_string';
+ }
+ self::$_config[$key] = $value;
}
- self::$_config[$key] = $value;
}
/**