table of contents
| Dancer2::ConfigReader(3pm) | User Contributed Perl Documentation | Dancer2::ConfigReader(3pm) |
NAME¶
Dancer2::ConfigReader - Config reader for Dancer2 App
VERSION¶
version 2.1.0
DESCRIPTION¶
This class provides a "config" attribute which is populated by executing one or more ConfigReader packages.
The default ConfigReader used is Dancer2::ConfigReader::Config::Any.
Also provides a setting() method which is supposed to be used by externals to read/write config entries.
If more than one config reader is used, their configurations are merged in left-to-write order where the previous config items get overwritten by subsequent ones.
For example, assuming we are using 3 config readers, if the first config reader returns
item1: content1
item2: content2
item3:
subitem1: subcontent1
subitem2: subcontent2
subitem3:
subsubitem1:
subsubcontent1
item4:
subitem1: subcontent1
subitem2: subcontent2
and the second returns
item2: content9
item3:
subitem2: subcontent8
subitem3:
subsubitem1:
subsubcontent7
subitem4:
subsubitem5: subsubcontent5
item4: content4
then the final config is
item1: content1
item2: content9
item3:
subitem1: subcontent1
subitem2: subcontent8
subitem3:
subsubitem1:
subsubcontent7
subitem4:
subsubitem5: subsubcontent5
item4: content4
The default ConfigReader is "Dancer2::ConfigReader::Config::Any".
Configuring the ConfigReaders via DANCER_CONFIG_READERS¶
You can control which ConfigReader class or classes to use to create the config via the "DANCER_CONFIG_READERS" environment.
DANCER_CONFIG_READERS='Dancer2::ConfigReader::Config::Any,Dancer2::ConfigReader::CustomConfig'
If you want several, separate them with a comma (",").
Bootstrapping the ConfigReaders via "additional_config_readers"¶
If the key "additional_config_readers" is found in one in one or more of the configurations provided by the ConfigReaders, it'll be instantiated and added to the list of configurations to merge. This way you can, for example, create a basic config.yml that is
additional_config_readers:
- Dancer2::ConfigReader::SQLite:
path: /path/to/sqlite.db
table: config
The default ConfigReader Dancer2::ConfigReader::Config::Any will pick that file and proceed to instantiate "Dancer2::ConfigReader::SQLite" with the provided parameters.
"additional_config_readers" can take one or a list of reader configurations, which can be either the name of the ConfigReader's class, or the key/value pair of the class name and its constructor's arguments.
Creating your own custom ConfigReader classes.¶
Here's an example extending class "Dancer2::ConfigReader::Config::Any".
package Dancer2::ConfigReader::FileExtended;
use Moo;
extends 'Dancer2::ConfigReader::Config::Any';
has name => (
is => 'ro',
default => sub {'FileExtended'},
);
around read_config => sub {
my ($orig, $self) = @_;
my $config = $orig->($self, @_);
$config->{'dummy'}->{'item'} = 123;
return $config;
};
Another (more complex) example is in class "Dancer2::ConfigReader::Config::Any".
ATTRIBUTES¶
location¶
Absolute path to the directory where the server started.
config_location¶
Gets the location from the configuration. Same as "$object->location".
environments_location¶
Gets the directory where the environment files are stored.
config¶
Returns the whole configuration. This must not be used directly. Instead, use this via "Dancer2::Core::Role::HasConfig" role which manages configuration after it is created.
environment¶
Returns the name of the environment.
AUTHOR¶
Dancer Core Developers
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2026 by Alexis Sukrieh.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| 2026-04-05 | perl v5.40.1 |