Gdn_ConfigurationSource::fromString PHP Method

fromString() public static method

Load config data from a string
public static fromString ( Gdn_Configuration $Parent, string $String, string $Tag, string $Name = 'Configuration' ) : Gdn_ConfigurationSource
$Parent Gdn_Configuration Parent config object
$String string Config data string
$Tag string Internal friendly name
$Name string Optional setting name
return Gdn_ConfigurationSource
    public static function fromString($Parent, $String, $Tag, $Name = 'Configuration')
    {
        $ConfigurationData = self::parseString($String, $Name);
        if ($ConfigurationData === false) {
            throw new Exception('Could not parse config string.');
        }
        return new Gdn_ConfigurationSource($Parent, 'string', $Tag, $Name, $ConfigurationData);
    }

Usage Example

Example #1
0
 /**
  * Loads settings from a string into the object with the specified name;
  *
  * This string should be a textual representation of a PHP config array, ready
  * to be eval()'d.
  *
  * @param string $String A string containing the php settings array.
  * @param string $Tag A string descriptor of this config set
  * @param string $Name The name of the variable and initial group settings.
  *   Note: When $Name is 'Configuration' then the data will be set to the root of the config.
  * @param boolean $Dynamic Optional, whether to treat this as the request's "dynamic" config, and
  *   to save config changes here. These settings will also be re-applied later when "OverlayDynamic"
  *   is called after all defaults are loaded.
  * @return boolean
  */
 public function loadString($String, $Tag, $Name = 'Configuration', $Dynamic = true, $SaveCallback = null, $CallbackOptions = null)
 {
     $ConfigurationSource = Gdn_ConfigurationSource::fromString($this, $String, $Tag, $Name);
     if (!$ConfigurationSource) {
         return false;
     }
     $UseSplitting = $this->splitting;
     $ConfigurationSource->splitting($UseSplitting);
     $SourceTag = "string:{$Tag}";
     $this->sources[$SourceTag] = $ConfigurationSource;
     if ($Dynamic) {
         $this->dynamic = $ConfigurationSource;
     }
     if (!$UseSplitting) {
         $this->massImport($ConfigurationSource->export());
     } else {
         self::mergeConfig($this->Data, $ConfigurationSource->export());
     }
     // Callback for saving
     if (!is_null($SaveCallback)) {
         $ConfigurationSource->assignCallback($SaveCallback, $CallbackOptions);
     }
 }