<?php
class YourClass {
private $source = [];
public function set(string $location, $value) {
$array = $this->createArrayRecursive($keys, [], $value);
}
public function dumpSource() {
}
private function createArrayRecursive($keys, $arr, $value) {
$currentKey = $keys[0];
$arr[$currentKey] = $this->createArrayRecursive($keys, $arr, $value);
return $arr;
} else {
return $value;
}
}
}
// test
$test = new YourClass;
$test->set('validation.username', 'Jakis komunikat');
$test->set('validation.password', 'Haslo musi rownac sie admin!');
$test->set('koko.spoko.loko.oko.orinoko', 'admin');
$test->dumpSource();
?>
PD9waHAKCmNsYXNzIFlvdXJDbGFzcyB7CiAgICBwcml2YXRlICRzb3VyY2UgPSBbXTsKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXQoc3RyaW5nICRsb2NhdGlvbiwgJHZhbHVlKSB7CiAgICAgICAgJGtleXMgPSBleHBsb2RlKCcuJywgJGxvY2F0aW9uKTsKICAgICAgICAkYXJyYXkgPSAkdGhpcy0+Y3JlYXRlQXJyYXlSZWN1cnNpdmUoJGtleXMsIFtdLCAkdmFsdWUpOwoKICAgICAgICAkdGhpcy0+c291cmNlID0gYXJyYXlfbWVyZ2VfcmVjdXJzaXZlKCR0aGlzLT5zb3VyY2UsICRhcnJheSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGR1bXBTb3VyY2UoKSB7CiAgICAgICAgcHJpbnRfcigkdGhpcy0+c291cmNlKTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGNyZWF0ZUFycmF5UmVjdXJzaXZlKCRrZXlzLCAkYXJyLCAkdmFsdWUpIHsKICAgICAgICBpZiAoY291bnQoJGtleXMpKSB7CiAgICAgICAgICAgICRjdXJyZW50S2V5ID0gJGtleXNbMF07CiAgICAgICAgICAgIGFycmF5X3NoaWZ0KCRrZXlzKTsKICAgICAgICAgICAgJGFyclskY3VycmVudEtleV0gPSAkdGhpcy0+Y3JlYXRlQXJyYXlSZWN1cnNpdmUoJGtleXMsICRhcnIsICR2YWx1ZSk7CiAgICAgICAgICAgIHJldHVybiAkYXJyOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdmFsdWU7CiAgICAgICAgfQogICAgfQp9CgovLyB0ZXN0CiR0ZXN0ID0gbmV3IFlvdXJDbGFzczsKJHRlc3QtPnNldCgndmFsaWRhdGlvbi51c2VybmFtZScsICdKYWtpcyBrb211bmlrYXQnKTsKJHRlc3QtPnNldCgndmFsaWRhdGlvbi5wYXNzd29yZCcsICdIYXNsbyBtdXNpIHJvd25hYyBzaWUgYWRtaW4hJyk7CiR0ZXN0LT5zZXQoJ2tva28uc3Bva28ubG9rby5va28ub3Jpbm9rbycsICdhZG1pbicpOwokdGVzdC0+ZHVtcFNvdXJjZSgpOwo/Pg==