Class: ConfigSettingsManager

Class for management of the config settings stored in a config JSON file.

Details

This settings manager supports the multistep wizard like processing. That means that you do not have to put all settings in one big form and save them in one action. You can collect them over multiple steps (requests), go forward ad back, validate them on each step and finally save them after the final step.

You do not need any preliminary special settings name definitions. When you introduce a new setting, just start saving and getting it.

Implements

Authors

Oleg Schildt

Package

Source code

See also

 

Properties
protected

Internal variable for storing the state whether the config file must exist.

protected

Internal variable for storing the current context.

protected

Internal variable for storing the salt key if the data should be encrypted before saving.

protected

Internal variable for storing the state whether the data should be encrypted before saving.

protected

Internal variable that holds the target file path for storing the settings data.

protected

Internal variable for storing the array of the settings values.

protected

Internal variable for storing the state whether the APCU should be used.

protected

Internal variable for storing the validator.

Methods
public

Returns the current settings context.

public

Returns the value of a settings parameter.

public

Returns the validator for the settings.

public

Initializes the settings manager parameters.

protected

This is internal auxiliary function for loading the settings from the target file defined by the initialization.

public

Loads the settings from the target file.

protected

This is internal auxiliary function for converting the settings to JSON and storing it to the target file defined by the initialization.

public

Saves the settings from to the target file.

public

Sets the settings context.

public

Sets a settings parameter.

public

Sets settings parameters from an array.

public

Sets the validator for the settings.

protected

This is internal auxiliary function for checking that the settings manager is initialized correctly.

public

Validates the current settings values.


Property: ConfigSettingsManager::$config_file_must_exist

protected bool $config_file_must_exist = false;

Internal variable for storing the state whether the config file must exist.

Type

bool

Authors

Oleg Schildt

Source code


Property: ConfigSettingsManager::$context

protected string $context = "default";

Internal variable for storing the current context.

Type

string

Authors

Oleg Schildt

Source code

See also


Property: ConfigSettingsManager::$salt_key

protected string $salt_key = "default";

Internal variable for storing the salt key if the data should be encrypted before saving.

Type

string

Authors

Oleg Schildt

Source code


Property: ConfigSettingsManager::$save_encrypted

protected bool $save_encrypted = false;

Internal variable for storing the state whether the data should be encrypted before saving.

Type

bool

Authors

Oleg Schildt

Source code


Property: ConfigSettingsManager::$save_path

protected ?string $save_path = null;

Internal variable that holds the target file path for storing the settings data.

Type

?string

Authors

Oleg Schildt

Source code


Property: ConfigSettingsManager::$settings

protected array $settings = [];

Internal variable for storing the array of the settings values.

Type

array

Authors

Oleg Schildt

Source code


Property: ConfigSettingsManager::$use_apcu

protected bool $use_apcu = false;

Internal variable for storing the state whether the APCU should be used.

Type

bool

Authors

Oleg Schildt

Source code


Property: ConfigSettingsManager::$validator

protected ?\SmartFactory\Interfaces\ISettingsValidator $validator = null;

Internal variable for storing the validator.

Type

?\SmartFactory\Interfaces\ISettingsValidator

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::getContext()

public function getContext(): string;

Returns the current settings context.

Details

Settings might be edited not in one dialog, There can be several masks for different type of settings, or the settings can be configured in a wizard. In this case, only a subset of settings has to be saved and validated. To be able to write a flexible validator for the subsets, the $context is used. It can be - step1, step1, server_settings, db_connection_settings etc.

Returns

string

Returns the current settings context.

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::getParameter()

public function getParameter(string $name, mixed $default = null): mixed;

Returns the value of a settings parameter.

Parameters

Name Pass type Value type Default value Description
$name by value string

The name of the settings parameter.

$default by value mixed null

The default value of the settings parameter if it is not set yet. The parameter is a conformable way to pre-set a parameter to a default value if its value is not set yet.

Returns

mixed

Returns the value of the settings parameter.

Throws

\Exception

It might throw an exception in the case of any errors:

  • if the save path is not specified.
  • if the config file is not readable.

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::getValidator()

public function getValidator(): null;

Returns the validator for the settings.

Returns

null

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::init()

public function init(array $parameters): void;

Initializes the settings manager parameters.

Parameters

Name Pass type Value type Default value Description
$parameters by value array

Settings for saving and loading as an associative array in the form key => value:

  • $parameters["save_path"] - the target file path where the settings data should be stored.

  • $parameters["save_encrypted"] - if it is true, the data is encrypted before saving.

  • $parameters["salt_key"] - the salt key if the data should be encrypted before saving.

  • $parameters["config_file_must_exist"] - if this parameter is true and the config file does not exist, the loading function will fail.

  • $parameters["use_apcu"] - if installed, apcu can be used to cache the settings in the memory.

Returns

void

Throws

\Exception

It might throw an exception in the case of any system errors:

  • if the save path is not specified.

Overrides

Authors

Oleg Schildt

Source code


Method: ConfigSettingsManager::loadJSON()

protected function loadJSON(array &$data): void;

This is internal auxiliary function for loading the settings from the target file defined by the initialization.

Parameters

Name Pass type Value type Default value Description
$data by reference array

The target array with the settings values to be loaded.

Returns

void

Throws

\Exception

It might throw an exception in the case of any errors:

  • if the save path is not specified.
  • if the config file is not writable.
  • if the config file is not readable.
  • if the config file is invalid.

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::loadSettings()

public function loadSettings(): void;

Loads the settings from the target file.

Returns

void

Returns true if the settings have been successfully loaded, otherwise false.

Throws

\Exception

It might throw an exception in the case of any errors:

  • if the save path is not specified.
  • if the config file is not readable.
  • if the config file is invalid.

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::saveJSON()

protected function saveJSON(array &$data): void;

This is internal auxiliary function for converting the settings to JSON and storing it to the target file defined by the initialization.

Parameters

Name Pass type Value type Default value Description
$data by reference array

The array with the settings values to be saved.

Returns

void

Throws

\Exception

It might throw an exception in the case of any errors:

  • if the save path is not specified.
  • if the config file is not writable.

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::saveSettings()

public function saveSettings(): void;

Saves the settings from to the target file.

Returns

void

Throws

\Exception

It might throw an exception in the case of any errors:

  • if the save path is not specified.
  • if the config file is not readable.
  • if the config file is not writable.

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::setContext()

public function setContext(string $context = "default"): void;

Sets the settings context.

Details

Settings might be edited not in one dialog, There can be several masks for different type of settings, or the settings can be configured in a wizard. In this case, only a subset of settings has to be saved and validated. To be able to write a flexible validator for the subsets, the $context is used. It can be - step1, step1, server_settings, db_connection_settings etc.

Parameters

Name Pass type Value type Default value Description
$context by value string "default"

The settings context.

Returns

void

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::setParameter()

public function setParameter(string $name, mixed $value): void;

Sets a settings parameter.

Parameters

Name Pass type Value type Default value Description
$name by value string

The name of the settings parameter.

$value by value mixed

The value of the settings parameter.

Returns

void

Throws

\Exception

It might throw an exception in the case of any errors:

  • if some parameters are missing.
  • if dbworker does not extend \SmartFactory\DatabaseWorkers\DBWorker.
  • if the query fails or if some object names are invalid.
  • if the config file is not readable.

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::setParameters()

public function setParameters(array $parameters, bool $force_creation = false): void;

Sets settings parameters from an array.

Parameters

Name Pass type Value type Default value Description
$parameters by value array

Array of parameters in the form key => value.

$force_creation by value bool false

Flag which defines whether the parameter should be created if not exists. If false, only existing parameters are updated.

Returns

void

Throws

\Exception

It might throw an exception in the case of any errors:

  • if some parameters are missing.
  • if dbworker does not extend \SmartFactory\DatabaseWorkers\DBWorker.
  • if the query fails or if some object names are invalid.
  • if the config file is not readable.

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::setValidator()

public function setValidator(\SmartFactory\Interfaces\ISettingsValidator $validator): void;

Sets the validator for the settings.

Parameters

Name Pass type Value type Default value Description
$validator by value \SmartFactory\Interfaces\ISettingsValidator

The settings validator.

Returns

void

Overrides

Authors

Oleg Schildt

Source code

See also


Method: ConfigSettingsManager::validateParameters()

protected function validateParameters(): void;

This is internal auxiliary function for checking that the settings manager is initialized correctly.

Returns

void

Throws

\Exception

It might throw an exception in the case of any errors:

  • if the save path is not specified.

Authors

Oleg Schildt

Source code


Method: ConfigSettingsManager::validateSettings()

public function validateSettings(): void;

Validates the current settings values.

Details

It should be called after settings the new values of the parameters and before their saving.

Returns

void

Throws

\SmartFactory\SmartException|\SmartFactory\SmartExceptionCollection

It might throw an exception if the content type oк JSON data is invalid.

Overrides

Authors

Oleg Schildt

Source code

See also

Uses