App-Context
view release on metacpan or search on metacpan
lib/App/Conf/File.pod view on Meta::CPAN
######################################################################
## $Id: File.pod 3208 2002-09-09 01:34:11Z spadkins $
######################################################################
=head1 NAME
App::Conf::File - Load and access configuration data
=head1 SYNOPSIS
use App::Conf;
$config = App::Conf->new();
$config = App::Conf->new(configFile => $file);
print $config->dump(), "\n"; # use Data::Dumper to spit out the Perl representation
# accessors
$property_value = $config->get($property_name);
$branch = $config->get_branch($branch_name); # get hashref of properties
# on-demand loading helper methods (private methods)
$config->overlay($config2); # merge the two config structures using overlay rules
$config->overlay($config1, $config2); # merge $config2 onto $config1
$config->graft($branch_name, $config2); # graft new config structure onto branch
# By convention, the configurations for each App-Context service will be located
# two levels under the hash ref as shown.
$config->{Conf} # config settings for all Conf services
$config->{Conf}{default} # config settings for the default Conf service
$config->{Security} # config settings for all Security services
$config->{Security}{default} # config settings for the default Security service
$config->{Template}{tt} # config settings for the Template service named "tt"
# The default driver (if "configClass" not supplied) reads in a Perl
# data structure from the file. Alternate drivers can read a Storable,
# unvalidated XML, DTD-validated XML, RDF-validated XML, or any other
# file format or data source anyone cares to write a driver for.
$conf = {
'Standard' => {
'Log-Dispatch' => {
'logdir' => '/var/p5ee',
}
},
'Authen' => {
'passwd' => '/etc/passwd',
'seed' => '303292',
},
};
# A comparable unvalidating XML file would look like this.
<conf>
<Standard>
<Log-Dispatch logdir="/var/p5ee"/>
</Standard>
<Authen passwd="/etc/passwd" seed="303292"/>
</conf>
# A comparable ini file (.ini) would look like this.
[Standard.Log-Dispatch]
logdir = /var/p5ee
[Authen]
passwd = /etc/passwd
seed = 303292
# A comparable Java properties-like file would look like this.
Standard.Log-Dispatch.logdir = /var/p5ee
Authen.passwd = /etc/passwd
Authen.seed = 303292
=head1 DESCRIPTION
App::Conf::File is the class which represents configuration
data in a file. The type of Serializer used to deserialize the
data is determined by the extension on the file name and contents
of the beginning of the file.
=cut
#############################################################################
# CLASS
#############################################################################
=head1 Class: App::Conf::File
* Throws: App::Exception::Conf
* Since: 0.01
=head2 Design
The App::Conf::File class extends the App::Conf class,
overriding the create() method.
( run in 2.005 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )