У меня есть приложение CakePHP 3.3.14, где я создал 2 подкаталога, webroot/data/downloads/
а также webroot/data/master
Я хочу поместить эти пути в пользовательский файл конфигурации и ссылаться на них в контроллере. Но я не вижу, как это сделать.
Я следовал за документация по конфигурации но это не очень понятно
Итак, что я сделал:
config/my_config.php
Приведенный выше файл определяет массив:
return [ 'downloadsPath' => 'webroot/data/downloads/', 'masterPath' => 'webroot/data/master/' ];
В config/bootstrap.php
Я положил: Configure::load('my_config', 'default');
Как мне тогда использовать это в контроллере? Если я поставлю Configure::read('my_config.masterPath');
это дает ошибку, говоря: Класс ‘App \ Controller \ Configure’ не найден
Если я добавлю use Cake\Core\Configure;
в верхней части моего контроллера, который очищает ошибку, но возвращаемое значение null
:
debug(Configure::read('my_config.masterPath')); // null
Загрузка другого файла конфигурации просто расширяет настройки по умолчанию App.config
, Так что просто используйте \Cake\Core\Configure::read('masterPath')
и ты хороший.
РЕДАКТИРОВАТЬ
Если ваша цель — иметь разные пути конфигурации, вы можете сделать это следующим образом:
// my_config.php
return [
'MyConfig' => [
'masterPath' => '...',
...
]
]
Тогда используйте конфиг как это:
<?= \Cake\Core\Configure::read('MyConfig.masterPath') ?>
Других решений пока нет …