Easy Application Configuration With patConfiguration - Anatomy Class
(Page 4 of 11 )
Next, it's time to use the patConfiguration engine to read and use the values in the configuration file. Here's how:
<?
// include class
require("patConfiguration.php");
// create patConfiguration
object
$conf = new patConfiguration;
// set config file locations
$conf->setConfigDir("config");
//
read config file
$conf->parseConfigFile("config.xml");
// print configuration
print_r($conf->getConfigValue());
?>
Here's the output:
Array
(
[application.name] => SomeApp
[application.version] => 2.3
[application.window.height] => 600
[application.window.width] => 500
[application.window.list.maxItems] => 5
)
Let's dissect this a little to see how it works.
1. The first step is, obviously, to include all the relevant files for the class to work.
// include class
require("patConfiguration.php");
Once that's done, I can safely create an object of the patConfiguration class.
// create patConfiguration object
$conf = new patConfiguration;
This object instance will serve as the primary access point to the data in the application configuration file(s), allowing me to do all kinds of nifty things with it.
2. Next, the object's setConfigDir() method is used to set the default location of the configuration files,
// set config file locations
$conf->setConfigDir("config");
and the parseConfigFile() method is used to actually read each file into the object's internal stack.
// read config file
$conf->parseConfigFile("config.xml");
You can parse multiple configuration files by calling parseConfigFile() for each file, and telling patConfiguration to append (instead of overwriting) each set of configuration variables to the existing stack via the additional "a" option - as in the following code snippet:
// read config files
$conf->parseConfigFile("config.main.xml");
$conf->parseConfigFile("config.local.xml",
"a");
$conf->parseConfigFile("config.users.xml", "a");
4. Finally, all that's left is to actually use the configuration data - in this case, print it all to the standard output device.
// print configuration
print_r($conf->getConfigValue());
The getConfigValue() method gets the value of a specified configuration variable from the configuration file(s). If no variable name is specified, the entire set of values is returned...as in the example above.
Next: Version Control >>
More PHP Articles
More By Vikram Vaswani, (c) Melonfire