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;
?>
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