Package TWiki::Configure::Load

Purpose

This module consists of just a single subroutine readConfig. It allows to safely modify configuration variables for one single run without affecting normal TWiki operation.

StaticMethod readConfig ()

In normal TWiki operations as a web server this routine is called by the BEGIN block of TWiki.pm. However, when benchmarking/debugging it can be replaced by custom code which sets the configuration hash. To prevent us from overriding the custom code again, we use an "unconfigurable" key $cfg{ConfigurationFinished} as an indicator.

Note that this method is called by TWiki and configure, and only reads TWiki.spec= to get defaults. Other spec files (those for extensions) are not read.

The assumption is that configure will be run when an extension is installed, and that will add the config values to LocalSite.cfg, so no defaults are needed. TWiki.spec is still read because so much of the core code doesn't provide defaults, and it would be silly to have them in two places anyway.

StaticMethod expandValue ($string) -> $boolean

Expands references to TWiki configuration items which occur in the value of other configuration items. Use expand($hashref) if the item is not a plain scalar.

Happens to return true if something has been expanded, though I don't know whether you would want that. The replacement is done in-place,

StaticMethod readDefaults () -> \@errors

This is only called by configure to initialise the TWiki config hash with default values from the .spec files.

Normally all configuration values come from LocalSite.cfg. However when configure runs it has to get default values for config vars that have not yet been saved to LocalSite.cfg.

Returns a reference to a list of the errors it saw.

SEE ALSO: TWiki::Configure::TWikiCfg::load

Topic revision: r1 - 11 Oct 2010, TWikiContributor
This site is powered by FoswikiCopyright © by the contributing authors. All material on this site is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback