This class uses an XML file to build a data structure for keeping different kind of
settings. The XML file has different element for various data types, which are
validated when read or set. The settings from the configuration file are separated
into different groups, depending on the purpose they are used in the application.
These settings can be modified using the class, and then again saved to XML format.
Here's a brief description of the XML file elements:
- The root element CONFIG has 3 attributes:
- "saveDate" is the date on which the
config was was altered for the last time;
- "authorAdmin" is the administrator
account, that was the last to alter the
configuration file. This is either the
master-administrator account from
<administrationSettings>, or any
of the application administrators;
- "authorIP" is the IP address, from
which the configuration file was
altered for the last time.
- There are 9 setting-group elements, used for seaprating different data.
- "administrationSettings" is for
built-in administrator accounts, and
administration specific data;
- "applicationSettings" is for settings
and restrictions applied to the information,
used by the application;
- "phpSettings" is used to modify the
PHP settigs for the application to run
correctly;
- "sessionSettings" is the place where
session declaration and all related data
are stored;
- "fileSettings" is the declaration for all the
directories and files that the
applicataion(web-site) uses, along with their
file permissions;
- "debugSettings" is for storing debug settings;
- "miscellaneousSettings" is for all the settings,
that can not fit in any other setting-group :)
- "customSettings" is for your own custom
settings;
- "databaseSettings" is for database accounts,
and related database settings.
- You can make your own setting-groups in the "big" setting-groups, using
the GROUP element, which has only one attribute - the name of the group.
- There are a couple of settings, used as groups, and they are:
- "administrator" - for storing administrator
accounts in the configuration file instead in
account database (or whatever you use);
- "session" element is for grouping the
declarations for session used by the
application - name and timeout in general,
but you can add whatever you want.
- The basic elements of the configiration XML file are validated, depending
on their type. The types and the validation are:
- "alias" is a string, which has some restrictions -
it has to start with a letter, and then the rest of
the characters must be letters, digits, or
underscore("_");
- "password" is a valid MD5 hash - 32 symbols,
using all the digits and the letters from A to F(
these are all the symbols used for representing
hexdecinal numbers);
- "email" has to a be a valid email address;
- "string" has no restrictions - it's just a string :)
- "url" has to be a valid URL address. I made
a state of the art validation regular expression,
which even checks the TLD(top-level-domain)
of the URL (.com, .cc, .net, etc, but all existing).
- "boolean" has to be a valid boolean value.
The only allowed values are:
- 1, TRUE or ON for True;
- 0, FALSE or OFF for False.
The values are case-insensitive, and when set,
all values will be converted to ON/OFF;
- "int" - valid integer value (negative too);
- "float" - valid floating point number (real,
double);
- "file" - path to a file. The path will not be
checked, because it may not be absolute, but
relative to some different base directory (the
root directory for the application, or something
else). The validation made are only for the
absence of illeagal characters, and for the
file permissions, which are set using the
"permissions" attribute;
- "directory" - the same as "file", but for
directories. It has to end with a slash (trailing
slash).
- Each setting or group (without the root element) has a description property,
declared using DESCRIPTION element within the described elements. |