Духовность™
Продвинутый новичок
Про Registry вопрос
Так уже получилось, в моем изначальном проекте была такая структура конфига, т.е. многомерный массив. Такой же массив был и для переменных шаблона. Конфиги получились большие, на тыщу строк.
Как только я осознал, что в классах и функциях зачастую необходимо использовать эти параметры конфигурации, то классы были завалены global-ами:
Потом пришла идея создать такую функцию со статическим кэшированным хранилищем, абстрагироваться от самого $_CONFIG-массива:
Сейчас хочу использовать Registry.
Хочется узнать у уважаемой публики, столи ли хранить конфиги как это делал я -- в многомерных массивах (естественно, внутри Registry) или же не делать столь сложных структур? Где инстанцировать звездные классы? В самом Registry или же в глобальной области видимости, а уже потом отдавать экземпляры объектов в реестр?
Так уже получилось, в моем изначальном проекте была такая структура конфига, т.е. многомерный массив. Такой же массив был и для переменных шаблона. Конфиги получились большие, на тыщу строк.
Как только я осознал, что в классах и функциях зачастую необходимо использовать эти параметры конфигурации, то классы были завалены global-ами:
PHP:
class a{
function aa{
global $_CONFIG['dir']['images']['preview'];
}
}
PHP:
function getConfig()
{
global $_CONFIG;
$cfg = $_CONFIG;
static $data = array();
$args = func_get_args();
$key = serialize($args);
if (!isset($data[$key]))
{
foreach ($args as $arg)
{
if (isset($cfg[$arg]))
{
$cfg = $cfg[$arg];
}
else
{
trigger_error('Не найден элемент '.$arg.' массива $_CONFIG');
}
}
$data[$key] = $cfg;
}
return $data[$key];
}
// получение значения
$path = getConfig('dir', 'images', 'preview');
Хочется узнать у уважаемой публики, столи ли хранить конфиги как это делал я -- в многомерных массивах (естественно, внутри Registry) или же не делать столь сложных структур? Где инстанцировать звездные классы? В самом Registry или же в глобальной области видимости, а уже потом отдавать экземпляры объектов в реестр?

.