Можно ли считать метод с внешними зависимостями от статической конфигурации чистым?

У меня есть этот класс.

<?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];
}

0 ответов

Другие вопросы по тегам