lithium\core\AutoConfigurable::_autoConfig()
Assigns configuration values to object properties.
For example, given the following:
class Bar{
protected $_foo;
public function __construct(array $config = []) {
$this->_autoConfig($config, ['foo']);
}
}
$instance = new Bar(['foo' => 'baz']);
The foo
property would automatically be set to 'baz'
. If foo
was an array,
$auto
could be set to ['foo' => 'merge']
, and the config value of 'foo'
would be merged with the default value of the foo
property and assigned to it.
Parameters
-
array
$config
-
array
$auto
An array of values that should be processed. Each value should have a matching protected property (prefixed with
_
) defined in the class. If the property is an array, the property name should be the key and the value should be'merge'
.
Returns
voidSource
protected function _autoConfig(array $config, array $auto) {
foreach ($auto as $key => $flag) {
if (!isset($config[$key]) && !isset($config[$flag])) {
continue;
}
if ($flag === 'merge') {
$this->{"_{$key}"} = $config[$key] + $this->{"_{$key}"};
} else {
$this->{"_$flag"} = $config[$flag];
}
}
}