The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Nile::Config - Configuration file manager.

SYNOPSIS

        # get the app config object
        $config = $self->me->config;
        
        # get a new config object
        $config = $self->me->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.

object()

        # get a new config object
        #my $configure = $config->object;
        #my $configure = $config->new;
        
        # load and manage a language files separately
        #$configure->load("configuration");

Returns a new config object. This allows to load individual config files and work with them.

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.