Database
Autarky comes with a very small set of classes to manage PDO instances. The manager will read your config/database
config file and translate those into lazily loaded PDO objects. You can retrieve a connection either via the ConnectionManager:
$manager = $container->resolve('Autarky\Database\ConnectionManager'); $manager->getPdo(); // get the default connection $manager->getPdo('other_connection');
The default connection is defined by the connection
key in the config file.
Each connection must correspond to a key in the connections
array in the config file. The structure of these connection arrays vary between different PDO drivers. The only one that always has to be present is the driver
key, which should be the name of a PDO driver.
There is also the optional pdo_options
array, which contain additional PDO options, some of which are described here.
Lastly there is the optional pdo_init_commands
array, which should be an array of strings containing SQL commands that are run right after the connection has been extablished.
In addition, any array keys not specifically mentioned here will simply be appended to the DSN. You can look up available DSN key/value pairs on the PDO driver page on php.net. For example, with Postgres, if you want to set the charset when connection, your PDO DSN should look like this:
new PDO("host=localhost;options='--client_encoding=UTF8'", $user, $pass);
To emulate this with the connection config, simply add the following to a Postgres connection array:
'options' => "'--client_encoding=UTF8'",
SQLite
SQLite only requires a path
key, which should be the full path to the SQLite database file.
Postgres (pgsql)
You can specify dbname
, username
, password
, host
and port
.
MSSQL (sqlsrv)
Database
, username
and password
should be specified. If you need to specify a port, simply add a comma behind the Server
value:
'Server' => 'localhost,1521'
MySQL
You can specify host
, port
, dbname
, username
, password
and charset
.
Other drivers
Other drivers may or may not work. Try to pass an array of all the DSN key/value pairs as specified by the php.net documentation.