У вас вся система будет сделана на ООП, каким образом новичок сможет в этом разобраться( уже требуется знать как мин ООП), что вы куда вынесли ему и так будет не понятно.
Вообще тут надо проектировать на начальном уровне, так как Config, должен иметь интерфейс collection либо от (что то похожое,)
Если у нас файл будет иметь настройки как php, то его можно загрузить в систему с помощью двух компонентов
1. Config::load('/path_to_file');
2. И сам Config может иметь связь с Filesystem который работает с файлами. - и делает их include
Приблезительно накатал примеры.
interface Filesystem
{
public function isExisted($path);
public function get($path);
public function put($path, $contents);
public function prepend($path, $data);
public function append($path, $data);
public function delete($paths);
public function copy($from, $to);
public function move($from, $to);
public function size($path);
public function getAllFiles($directory = null);
public function getAllDirectories($directory = null);
public function makeDirectory($path);
public function deleteDirectory($directory);
}
interface Config
{
public function has($key);
public function get($key, $default = null);
public function all();
public function set($key, $value = null);
public function prepend($key, $value);
public function push($key, $value);
public function load($path);
}