how my own database handles use config.yml
chenjch opened this issue · 3 comments
I use my own database handles, subclass from Dancer::Plugin::Database::Core::Handle,
but i want to get some config setting from config.yml, such as:
plugins:
Database:
handle_class: 'Mew::DBHandle'
driver: mysql
host: ...
...
log_queries: 1
sql_abstract:
limit_dialect: 'LimitXY'
quote_char: '`'
name_sep: '.'
at Dancer::Plugin::Database::Core, you give log_queries config to Dancer::Plugin::Database::Core::Handle, but how you give other config to my own handle
# Indicate whether queries generated by quick_query() etc in
# Dancer::Plugin::Database::Core::Handle should be logged or not; this seemed a
# little dirty, but DBI's docs encourage it
# ("You can stash private data into DBI handles via $h->{private_..._*}..")
$dbh->{private_dancer_plugin_database} = {
log_queries => $settings->{log_queries} || 0,
};
i just modify your code at present :)
$dbh->{private_dancer_plugin_database} = {
log_queries => $settings->{log_queries} || 0,
sql_abstract => $settings->{sql_abstract} || {},
};
config.yml
plugins:
Database:
handle_class: 'Mew::DBHandle'
driver: mysql
host: ...
database: ..
port: 3306
...
handle_setting:
log_queries: 1
sql_abstract:
limit_dialect: 'LimitXY'
quote_char: '`'
name_sep: '.'
Dancer::Plugin::Database::Core
$dbh->{private_dancer_plugin_database} = $settings->{handle_setting};
my own handle class Mew::DBHandle, subclass of Dancer::Plugin::Database::Core::Handle
can get the sql_abstract setting by $self->{private_dancer_plugin_database}->{sql_abstract}
and Dancer::Plugin::Database::Core::Handle can get the log_queries setting by $self->{private_dancer_plugin_database}->{log_queries}, this is my need and it looks like perfect:)