У меня есть этот класс.
<?php
class Helper
{
private $config;
public function __construct(array $config)
{
$this->config = $config;
}
public function getVal($key)
{
return $this->config[$key];
}
}
Конфигурация устанавливается во время загрузки и не может быть изменена во время выполнения, поэтому для конкретной среды выполнения одни и те же аргументы всегда будут давать одинаковые результаты, но мы не можем сказать одно и то же о разных экземплярах программы.
Можно getVal(string)
считаться чистой функцией?
Другая, не ООП-версия той же функциональности будет выглядеть так:
<?php
function getVal($key){
static $config;
if ($config === null) {
$config = include "config.php";
}
return $config[$key];
}
Задача ещё не решена.
Других решений пока нет …