diff options
author | Jordan Lev <[email protected]> | 2011-05-15 17:03:48 -0700 |
---|---|---|
committer | Jordan Lev <[email protected]> | 2011-05-15 17:03:48 -0700 |
commit | 9f382150234e6ce398ec4519d1033e476d4b47f0 (patch) | |
tree | 76be117e3deb08f9fc873950cffb769c61da0fd0 | |
parent | c956f1c8250cfb07c29f5b14a43e2ca30747e2d6 (diff) |
configure() function can now accept an array of settings (also updated README to reflect this)
-rw-r--r-- | README.markdown | 8 | ||||
-rw-r--r-- | idiorm.php | 29 |
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` @@ -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; } /** |