NAME

Nile::Config - Configuration file manager.

SYNOPSIS

# get the app config object
$config = $self->app->config;

# get a new config object
$config = $self->app->config->new;

# keep sort order when reading and writing the xml file data. default is off.
#$config->keep_order(1);

# load config file from the configuration folder, file extension is xml.
$config->load("config");

# load and append another configuration file
$config->add_file("admins");

# get config variables
say $config->get("admin/user");
say $config->get("admin/password");
    
# get config variable, if not found return the optional provided default value.
$var = $config->get($name, $default);

# automatic getter support
say $config->email; # same as $config->get('email');

# get a group of config variables.
@list = $config->list(@names);

# delete config variables from memory, changes will apply when saving file.
$config->delete(@names);

# set config variables.
$config->set("admin", 'username');
$config->set(%vars);

# automatic setter support
$config->email('ahmed@mewsoft.com'); # same as $config->set('email', 'ahmed@mewsoft.com');

# save changes to file.
$config->save();

# write to another output file.
$config->save($file);

DESCRIPTION

Nile::Config - Configuration file manager.

Configuration files are xml files stored in the application config folder. You can load and manage any number of configuration files.

This class extends Nile::XML class, therefore all methods from Nile::XML is accessable to this object.

Bugs

This project is available on github at https://github.com/mewsoft/Nile.

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Nile.

SOURCE

Source repository is at https://github.com/mewsoft/Nile.

SEE ALSO

See Nile for details about the complete framework.

AUTHOR

Ahmed Amin Elsheshtawy, احمد امين الششتاوى <mewsoft@cpan.org> Website: http://www.mewsoft.com

COPYRIGHT AND LICENSE

Copyright (C) 2014-2015 by Dr. Ahmed Amin Elsheshtawy احمد امين الششتاوى mewsoft@cpan.org, support@mewsoft.com, https://github.com/mewsoft/Nile, http://www.mewsoft.com

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.