Location: PHPKode > scripts > Mrasnika's configuration system > mrasnikas-configuration-system/readme.txt
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.
Return current item: Mrasnika's configuration system