Easy Application Configuration With patConfiguration - Your Friendly Neighbourhood Spiderman (
Page 3 of 11 )
Now that the hard sell is over and you're (hopefully) all set up with
patConfiguration, let's take a simple example to see how it works.
Consider the following simple configuration file:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<path name="mail">
<configValue
name="from-name" type="string">Peter
Parker</configValue>
<configValue
name="from-address"
type="string">spider.man@roof.top.com</configValue>
</path>
</configuration>
The XML file above contains configuration data in a format that is understood
by patConfiguration. As you can see, a patConfiguration-compliant configuration
file must conform to the standard rules of XML markup, and must contain a <configuration>
root element. Configuration values can be grouped together under this root element
using <path> elements, with every variable-value pair represented by a <configValue>
element.
Variable-value pairs are accessed by drilling down the tree of <path> elements
until the desired node is reached. For example, to access the value of the email
address
spider.man@roof.top.com
in the configuration file above, I would use the path
mail.from-address.
patConfiguration allows you to nest <path> elements to any depth - the following
is a perfectly valid configuration file:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<path name="application">
<configValue
name="name"
type="string">SomeApp</configValue>
<configValue name="version"
type="string">2.3</configValue>
<path
name="window">
<configValue name="height"
type="int">600</configValue>
<configValue
name="width"
type="int">500</configValue>
<path name="list">
<configValue
name="maxItems"
type="int">5</configValue>
</path>
</path>
</path>
</configuration>
You can even link the values in a configuration file with each other via the
<getConfigValue> element - consider the following example, which uses the application
name and version number to dynamically create a variable containing the window
title:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<path name="application">
<configValue
name="name"
type="string">SomeApp</configValue>
<configValue name="version"
type="string">2.3</configValue>
<path
name="window">
<configValue name="height"
type="int">600</configValue>
<configValue
name="width"
type="int">500</configValue>
<configValue name="title" type="string">
<getConfigValue
path="application.name"
/> <getConfigValue path="application.version" />
</configValue>
</path>
</path>
</configuration>
The variable-value pairs in this configuration file can be read and manipulated
by patConfiguration in the context of a PHP application. Let's look at that next.