У меня есть скрипт (маленькая и простая CMS-подобная система), над которым я всегда работаю, и использую его для клиентских сайтов.Поскольку у клиентов разные требования, я реализовал модульную систему, которая позволяет мне изменять или добавлять функциональные возможности в CMS без необходимости изменения сценария CMS.
Как мне реализовать систему конфигурации, которая позволяет мнеизменить настройки по умолчанию основной CMS из модулей?
Например, CMS по умолчанию имеет два меню: $menu = array('menu-1', 'menu-2');
Как я могу переопределить этот параметр из модулей?
Одно решениеЯ подумал о том, чтобы использовать константы и сериализовать / десериализовать:
defined("BLA") or define("BLA", serialize(array(
'boo' => 'stuff',
'foo' => array('1', '2', '3'),
'moo' => true,
...
)));
Так что я мог бы легко переопределить этот параметр в функции инициализации модуля, которая запускается до определения константы в CMS.
Затем я использую эти константы повсюду в своих скриптах, например:
$bla = unserialize(BLA);
...
foreach(unserialize(BLA) as $key => $value)...
Другой альтернативой может быть использование глобальной переменной, но люди говорят, что использование глобальной - это плохо.
Так есть ли лучшие решения для того, что я ищу?