Path

ez components / documentation / api reference / 2007.1.1 / configuration


eZ Components 2007.1.1

Configuration: ezcConfiguration

[ Tutorial ] [ Class tree ] [ Element index ] [ ChangeLog ] [ Credits ]

Class: ezcConfiguration

This class provides persistent platform-independent and format independent application settings. [source]
A typical usage for retrieving the settings in an application:
1.  $conf new ezcConfiguration();
2.  if $conf->hasSettings'Colors'array'Background''Foreground' ) ) )
3.  {
4.      $colorBg $conf->getSetting'Colors''Background' );
5.      $colorFg $conf->getIntSetting'Colors''Foreground' );
6.  }
A typical usage for storing the settings of an application:
1.  // $conf contains an ezcConfiguration object
2.   $conf->setSetting'Colors''Background''blue' );
3.  $conf->setSetting'Fonts''PointSize'12 );
4.  
5.  $conf->setSettings'DB',
6.                      array'Host''User''Password' ),
7.                      array'localhost''dr''eXaMpLe' ) );
The current groups and their settings can be examined with:
 1.  // $conf contains an ezcConfiguration object
 2.   $groups $conf->getGroupNames();
 3.  foreach $groups as $group )
 4.  {
 5.     $settings $conf->getSettingNames$group );
 6.     foreach $settings as $setting )
 7.     {
 8.         $value $conf->getSetting$group$setting );
 9.         print "$group:$setting=$value\n";
10.     }
11.  }
Alternatively all settings and their values can be returned in one go:
1.  // $conf contains an ezcConfiguration object
2.   $settings $conf->getSettingsInGroup'Colors' );
3.  foreach $settings as $setting => $value )
4.  {
5.     print "$setting=$value\n";
6.  }
Or quering the entire configuration settings with getAllSettings():
1.  // $conf contains an ezcConfiguration object
2.   $allSettings $conf->getAllSettings'Colors' );
3.  foreach $allSettings as $group => $settings )
4.  {
5.     foreach $settings as $setting => $value )
6.     {
7.         print "$group:$setting=$value\n";
8.     }
9.  }
Fetching specific settings is done using getSetting() or if you want to ensure that it is a specific type use getBoolSetting(), getIntSetting(), getFloatSetting(), getNumberSetting(), getStringSetting() or getArraySetting(). Fetching multiple values is possible with getSettings().
Removing entries is possible with removeSetting(), removeSettings(), removeGroup() and removeAllSettings().
In addition all entries can queried for existance with hasSetting(), hasSettings() and hasGroup().
Reading and writing is done by the various implemenations of ezcConfigurationReader and ezcConfigurationWriter respectively. They provide access to different configuration formats and storage types, for instance INI files and database storage.
If the application does not need to have such finegrained control over the settings the ezcConfigurationManager class might be of interest.

Method Summary

public ezcConfiguration __construct( [$settings = array()], [$comments = array()] )
Constructs the configuration object.
public void addGroup( $group, [$comment = null] )
Adds a the group $group with the comment $comment the settings.
public array(array) getAllComments( )
Returns all the groups and their settings comments as an array.
public array(array) getAllSettings( )
Returns all the groups and their settings and values.
public array getArraySetting( $group, $setting )
Returns the value of the setting $setting in group $group.
public bool getBoolSetting( $group, $setting )
Returns the value of the setting $setting in group $group.
public string getComment( $group, $setting, $setting )
Returns the comment belonging to setting $setting located in group $group.
public array getComments( $group, $settings )
Returns the comments belonging to the specified settings $settings as an array.
public array getGroupNames( )
Returns the names of all the groups as an array.
public mixed getNumberSetting( $group, $setting )
Returns the value of the setting $setting in group $group.
public mixed getSetting( $group, $setting, $setting )
Returns the value of setting $setting located in group $group.
public array(string) getSettingNames( $group )
Returns the names of all settings in the group $group.
public array getSettings( $group, $settings )
Returns the values of the settings $settings in group $group as an array.
public array(string=>mixed) getSettingsInGroup( $group )
Returns all settings in the group $group.
public string getStringSetting( $group, $setting )
Returns the value of the setting $setting in group $group.
public bool hasGroup( $group )
Returns true if the group $group exists.
public bool hasSetting( $group, $setting )
Returns true if setting $setting exists within the group $group.
public bool hasSettings( $group, $settings )
Returns true if all the specified settings $settings exists within $group.
public bool isModified( )
Returns true if the configuration has been modified since it was initialized with the constructor.
public void removeAllSettings( )
Removes all groups, settings, values and comments.
public void removeGroup( $group )
Removes the group $group from the settings.
public void removeSetting( $group, $setting )
Removes the setting $setting from the group $group.
public void removeSettings( $group, $settings )
Removes the settings $settings from the group $group.
public void setSetting( $group, $setting, $value, [$comment = null] )
Sets the setting $setting in group $group to $value.
public void setSettings( $group, $settings, $values, [$comments = null] )
Sets the settings $setting in group $group to $values.

Methods

__construct

ezcConfiguration __construct( [array $settings = array()], [array $comments = array()] )
Constructs the configuration object.
Initializes the configuration object with the groups and the comments. The $settings array contains all the setting groups. The $comments array has the same format. See ezcConfiguration::$settings and ezcConfiguration::$comments for an example of the layout.

Parameters

Name Type Description
$settings array  
$comments array  

addGroup

void addGroup( string $group, [string $comment = null] )
Adds a the group $group with the comment $comment the settings.

Parameters

Name Type Description
$group string  
$comment string  

Throws

ClassDescription
ezcConfigurationGroupExistsAlreadyException if the group that you are trying to add already exists.

getAllComments

array(array) getAllComments( )
Returns all the groups and their settings comments as an array.
The returned array looks like:
1.  array'group1' => array'#' => 'groupcomment',
2.                            'setting1' => 'comment1',
3.                            'setting2' => 'comment2' ),
4.         'group2' => array'setting3' => 'comment3' ) );

getAllSettings

array(array) getAllSettings( )
Returns all the groups and their settings and values.
The returned array looks like:
1.  array'group1' => array'setting1' => 'value1',
2.                            'setting2' => 'value2' ),
3.         'group2' => array'setting3' => 'value3' ) );

getArraySetting

array getArraySetting( string $group, string $setting )
Returns the value of the setting $setting in group $group.
Uses the getSetting() method to fetch the value, this method can throw exceptions. This method also validates whether the value is actually an array value.

Parameters

Name Type Description
$group string  
$setting string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if the setting does not exist.
ezcConfigurationSettingWrongTypeException if the setting value is not an array.

See also:

setting.


getBoolSetting

bool getBoolSetting( string $group, string $setting )
Returns the value of the setting $setting in group $group.
Uses the getSetting() method to fetch the value, this method can throw exceptions. This method also validates whether the value is actually a boolean value.

Parameters

Name Type Description
$group string  
$setting string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if the setting does not exist.
ezcConfigurationSettingWrongTypeException if the setting value is not a boolean.

See also:

setting.


getComment

string getComment( string $group, $setting, string $setting )
Returns the comment belonging to setting $setting located in group $group.
This method returns the comment belonging to the setting that is passed. If there is no comment for this specific setting it returns false.

Parameters

Name Type Description
$group string  
$setting string  
$setting  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if the setting does not exist.

getComments

array getComments( string $group, $settings )
Returns the comments belonging to the specified settings $settings as an array.
This method returns the comments belonging to the settings that are passed. If there is no comment for each specific setting the returning array element will have a value of false.

Parameters

Name Type Description
$group string The name of the group the settings will be located in.
$settings array  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if one or more of the settings do not exist.

getGroupNames

array getGroupNames( )
Returns the names of all the groups as an array.

getNumberSetting

mixed getNumberSetting( string $group, string $setting )
Returns the value of the setting $setting in group $group.
Uses the getSetting() method to fetch the value, this method can throw exceptions. This method also validates whether the value is actually an integer or float value.

Parameters

Name Type Description
$group string  
$setting string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if the setting does not exist.
ezcConfigurationSettingWrongTypeException if the setting value is not an integer or a float.

See also:

setting.


getSetting

mixed getSetting( string $group, $setting, string $setting )
Returns the value of setting $setting located in group $group.

Parameters

Name Type Description
$group string  
$setting string  
$setting  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if the setting does not exist.

getSettingNames

array(string) getSettingNames( string $group )
Returns the names of all settings in the group $group.

Parameters

Name Type Description
$group string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.

getSettings

array getSettings( string $group, $settings )
Returns the values of the settings $settings in group $group as an array.
For each of the setting names passed in the $settings array it will return the setting in the returned array with the name of the setting as key.

Parameters

Name Type Description
$group string  
$settings array  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if one or more of the settings do not exist.

getSettingsInGroup

array(string=>mixed) getSettingsInGroup( string $group )
Returns all settings in the group $group.

Parameters

Name Type Description
$group string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.

getStringSetting

string getStringSetting( string $group, string $setting )
Returns the value of the setting $setting in group $group.
Uses the getSetting() method to fetch the value, this method can throw exceptions. This method also validates whether the value is actually a string value.

Parameters

Name Type Description
$group string  
$setting string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if the setting does not exist.
ezcConfigurationSettingWrongTypeException if the setting value is not a string.

See also:

setting.


hasGroup

bool hasGroup( string $group )
Returns true if the group $group exists.

Parameters

Name Type Description
$group string  

hasSetting

bool hasSetting( string $group, string $setting )
Returns true if setting $setting exists within the group $group.

Parameters

Name Type Description
$group string  
$setting string  

hasSettings

bool hasSettings( string $group, $settings )
Returns true if all the specified settings $settings exists within $group.

Parameters

Name Type Description
$group string  
$settings array(string)  

isModified

bool isModified( )
Returns true if the configuration has been modified since it was initialized with the constructor.

removeAllSettings

void removeAllSettings( )
Removes all groups, settings, values and comments.

removeGroup

void removeGroup( string $group )
Removes the group $group from the settings.

Parameters

Name Type Description
$group string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.

removeSetting

void removeSetting( string $group, string $setting )
Removes the setting $setting from the group $group.

Parameters

Name Type Description
$group string  
$setting string  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if the setting does not exist.

removeSettings

void removeSettings( string $group, $settings )
Removes the settings $settings from the group $group.

Parameters

Name Type Description
$group string  
$settings array(string)  

Throws

ClassDescription
ezcConfigurationUnknownGroupException if the group does not exist.
ezcConfigurationUnknownSettingException if one or more of the settings do not exist.

setSetting

void setSetting( string $group, string $setting, mixed $value, [string $comment = null] )
Sets the setting $setting in group $group to $value.
If the setting does not already exists it will be created.

Parameters

Name Type Description
$group string  
$setting string  
$value mixed The value of the setting, can be any PHP type except a resource or an object.
$comment string The comment belonging to the setting

setSettings

void setSettings( string $group, array(string) $settings, array(mixed) $values, [array(string) $comments = null] )
Sets the settings $setting in group $group to $values.
If the settings do not already exists it will be created.

Parameters

Name Type Description
$group string  
$settings array(string)  
$values array(mixed)  
$comments array(string) The comment belonging to the setting

Last updated: Wed, 28 Nov 2007