Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions
Settings Class Reference

Public Member Functions

 __construct ($baseDir, array $settings)
 
 get ($settingName, $defaultValue=null)
 
 getAsBoolean ($settingName)
 
 getAsFile ($settingName, $defaultValue='')
 
 getAsConfigFile ($settingName)
 
 getAsMatchingPaths ($settingName)
 

Protected Member Functions

 _resolvePath ($relativePath)
 
 _resolvePathPattern ($pattern)
 

Detailed Description

Convenient access to the bootstrap settings

Definition at line 14 of file Settings.php.

Constructor & Destructor Documentation

◆ __construct()

__construct (   $baseDir,
array  $settings 
)

Constructor

Parameters
string$baseDir
array$settings
Exceptions

Definition at line 37 of file Settings.php.

38  {
39  if (!is_dir($baseDir)) {
40  throw new \InvalidArgumentException("Base path '{$baseDir}' has to be an existing directory.");
41  }
42  $this->_baseDir = realpath($baseDir);
43  $this->_settings = $settings;
44  }
$baseDir
Definition: autoload.php:9
$settings
Definition: bootstrap.php:29

Member Function Documentation

◆ _resolvePath()

_resolvePath (   $relativePath)
protected

Return an absolute path by a relative one without checking its validity

Parameters
string$relativePath
Returns
string

Definition at line 130 of file Settings.php.

131  {
132  return $this->_baseDir . '/' . $relativePath;
133  }
$relativePath
Definition: get.php:35

◆ _resolvePathPattern()

_resolvePathPattern (   $pattern)
protected

Resolve semicolon-separated relative glob pattern(s) to matched absolute paths

Parameters
string$pattern
Returns
array

Definition at line 141 of file Settings.php.

142  {
143  $result = [];
144  $allPatterns = preg_split('/\s*;\s*/', trim($pattern), -1, PREG_SPLIT_NO_EMPTY);
145  foreach ($allPatterns as $onePattern) {
146  $onePattern = $this->_resolvePath($onePattern);
147  $files = Glob::glob($onePattern, Glob::GLOB_BRACE);
148  $result = array_merge($result, $files);
149  }
150  return $result;
151  }
$pattern
Definition: website.php:22
static glob($pattern, $flags=0, $forceFallback=false)
Definition: Glob.php:24
foreach($appDirs as $dir) $files

◆ get()

get (   $settingName,
  $defaultValue = null 
)

Retrieve a setting value as is

Parameters
string$settingName
mixed$defaultValue
Returns
mixed

Definition at line 53 of file Settings.php.

54  {
55  return array_key_exists($settingName, $this->_settings) ? $this->_settings[$settingName] : $defaultValue;
56  }

◆ getAsBoolean()

getAsBoolean (   $settingName)

Interpret a setting value as a switch and return TRUE when it equals to the string "enabled" or FALSE otherwise

Parameters
string$settingName
Returns
bool @SuppressWarnings(PHPMD.BooleanGetMethodName)

Definition at line 65 of file Settings.php.

66  {
67  return $this->get($settingName) === 'enabled';
68  }

◆ getAsConfigFile()

getAsConfigFile (   $settingName)

Interpret a setting value as a file optionally falling back to the '.dist' file and return absolute path to it

Parameters
string$settingName
Returns
string
Exceptions

Definition at line 93 of file Settings.php.

94  {
95  $result = $this->getAsFile($settingName);
96  if ($result !== '') {
97  if (!is_file($result) && substr($result, -5) != '.dist') {
98  $result .= '.dist';
99  }
100  if (is_file($result)) {
101  return $result;
102  }
103  }
104  throw new \Magento\Framework\Exception\LocalizedException(
105  __("Setting '%1' specifies the non-existing file '%2'.", $settingName, $result)
106  );
107  }
__()
Definition: __.php:13
getAsFile($settingName, $defaultValue='')
Definition: Settings.php:77

◆ getAsFile()

getAsFile (   $settingName,
  $defaultValue = '' 
)

Interpret a setting value as a relative file name and return absolute path to it

Parameters
string$settingName
string$defaultValue
Returns
string

Definition at line 77 of file Settings.php.

78  {
79  $result = $this->get($settingName, $defaultValue);
80  if ($result !== '') {
81  $result = $this->_resolvePath($result);
82  }
83  return $result;
84  }

◆ getAsMatchingPaths()

getAsMatchingPaths (   $settingName)

Interpret a setting value as a semicolon-separated relative glob pattern(s) and return matched absolute paths

Parameters
string$settingName
Returns
array

Definition at line 115 of file Settings.php.

116  {
117  $settingValue = $this->get($settingName, '');
118  if ($settingValue !== '') {
119  return $this->_resolvePathPattern($settingValue);
120  }
121  return [];
122  }

The documentation for this class was generated from the following file: