Pyrus's configuration API
Introduction
This documentation describes how to use Pyrus's public class API to access configuration values. Before reading further, you should be familiar with the documentation on Pyrus's configuration.
Pyrus's configuration is controlled by the PEAR2\Pyrus\Config
class, which is implemented as a multiton mapping Pyrus installation location
to a configuration object. In addition, the current configuration (most
recently instantiated) is also accessible to create configuration-agnostic
functionality.
Configuration variables are accessed by referring to them as class
properties. Here is an example requesting the doc_dir
configuration variable, and setting the test_dir
configuration variable:
<?php
$docdir = PEAR2\Pyrus\Config::current()->doc_dir;
PEAR2\Pyrus\Config::current()->test_dir = '/path/to/tests';
?>
The user configuration in use is also accessible from each configuration
in the same manner as the installation-specific configuration. Here is
an example requesting preferred_state
and setting
verbose
:
<?php
$pref = PEAR2\Pyrus\Config::current()->preferred_state;
PEAR2\Pyrus\Config::current()->verbose = 3;
?>
Special variables available
In addition to the configuration variables, Pyrus also defines a few other values that are available, and cannot be used as the names of custom configuration variables:
-
path
- the complete PATH_SEPARATOR separated list of cascading directories this configuration represents. -
location
- the writable pyrus installation this configuration represents -
registry
- the registry corresponding to the configuration -
pluginregistry
- the registry corresponding to the location that plugins are installed -
channelregistry
- the channel registry corresponding to the configuration -
systemvars
- an array of names of system configuration variables, built-in and custom -
uservars
- an array of names of user configuration variables, built-in and custom -
channelvars
- an array of channel-specific configuration variables, built-in and custom -
mainsystemvars
- an array of names of built-in system variables -
mainuservars
- an array of names of built-in user variables -
mainchannelvars
- an array of names of built-in channel-specific variables -
userfile
- path to the user configuration file in use by this configuration. -
customsystemvars
- an array of names of custom system variables -
customuservars
- an array of names of custom user variables -
customchannelvars
- an array of names of custom channel-specific variables