У меня есть сценарий (небольшая и простая CMS-подобная система), с которой я всегда работаю и использую его для клиентских сайтов. Поскольку у клиентов разные требования, я внедрил модульную систему, которая позволяет мне изменять/добавлять функциональные возможности в CMS, не изменяя сценарий CMS.PHP - константы/глобальные переменные/конфигурация
Как я могу реализовать систему конфигурации, которая позволяет мне изменять настройки основного 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)...
Другой альтернативой было бы использовать глобальную переменную, но люди говорят, что это плохо, чтобы использовать глобальные.
Итак, есть ли лучшие решения для того, что я ищу?
Почему вы это делаете? Может также просто определить глобальный массив, если вы собираетесь пройти по этому маршруту. Кроме того, вы можете использовать библиотеку config, которая позволяет хранить массивы в качестве значений конфигурации. – xil3
, потому что мне нужен постоянный массив :) И я не хочу использовать глобальные переменные – Alex
Используете ли вы среду MVC? – xil3