В настоящее время у меня есть следующее в _config.php
$myConfigArray = array(
'key1' => 'val1',
'key2' => 'val2'
);
Однако функция в одном из моих контроллеров не может видеть массив. Он не определен, если я не объявлю «global $ myConfigArray», в этом случае он будет пустым.
Что я здесь не так делаю?
Не используйте глобальные переменные. Не делай этого! Это может создать проблемы, если другой установленный модуль по той же причине имеет ту же переменную и перезаписывает ваши настройки.
Вы можете поместить его в ваш _config / config.yml, где он также будет кеширован:
MyConfig:
Foo:
key1: value1
key2: value2
(обратите внимание на правильное назначение yml!)
Вы можете получить к нему доступ, используя Config API, например,
$foo = Config::inst()->get('MyConfig', 'Foo');
В _config.php
определить вашу переменную как global
перед настройкой:
global $myConfigArray;
$myConfigArray = array(
'key1' => 'val1',
'key2' => 'val2'
);
Затем в вашей функции объявите глобальную переменную перед ее использованием:
public function myFunction() {
global $myConfigArray;
$myConfigArray['key1'];
}