1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
<?php
/**
* Lithium: the most rad php framework
*
* @copyright Copyright 2010, Union of RAD (http://union-of-rad.org)
* @license http://opensource.org/licenses/bsd-license.php The BSD License
*/
/**
* ### Configuring backend database connections
*
* Lithium supports a wide variety relational and non-relational databases, and is designed to allow
* and encourage you to take advantage of multiple database technologies, choosing the most optimal
* one for each task.
*
* As with other `Adaptable`-based configurations, each database configuration is defined by a name,
* and an array of information detailing what database adapter to use, and how to connect to the
* database server. Unlike when configuring other classes, `Connections` uses two keys to determine
* which class to select. First is the `'type'` key, which specifies the type of backend to
* connect to. For relational databases, the type is set to `'database'`. For HTTP-based backends,
* like CouchDB, the type is `'http'`. Some backends have no type grouping, like MongoDB, which is
* unique and connects via a custom PECL extension. In this case, the type is set to `'MongoDb'`,
* and no `'adapter'` key is specified. In other cases, the `'adapter'` key identifies the unique
* adapter of the given type, i.e. `'MySql'` for the `'database'` type, or `'CouchDb'` for the
* `'http'` type. Note that while adapters are always specified in CamelCase form, types are
* specified either in CamelCase form, or in underscored form, depending on whether an `'adapter'`
* key is specified. See the examples below for more details.
*
* ### Multiple environments
*
* As with other `Adaptable` classes, `Connections` supports optionally specifying different
* configurations per named connection, depending on the current environment. For information on
* specifying environment-based configurations, see the `Environment` class.
*
* @see lithium\core\Adaptable
* @see lithium\core\Environment
*/
use lithium\data\Connections;
/**
* Uncomment this configuration to use MySQL as your default database.
*/
Connections::add('default', array(
'type' => 'database',
'adapter' => 'MySql',
'host' => 'otaku.raylu.net',
'login' => 'otakuhub',
'password' => 'otakuhub',
'database' => 'otakuhub'
));
/**
* Uncomment this configuration to use MongoDB as your default database.
*/
Connections::add('mongo', array(
'type' => 'MongoDb',
'host' => 'localhost',
'database' => 'otakuhub',
'persistent' => 'foo'
));
/**
* Uncomment this configuration to use CouchDB as your default database.
*/
// Connections::add('default', array(
// 'type' => 'http',
// 'adapter' => 'CouchDb',
// 'host' => 'localhost',
// 'database' => 'my_app'
// ));
?>
|