Пользовательские файлы конфигурации в CakePHP 3

У меня есть приложение 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

4

Решение

Загрузка другого файла конфигурации просто расширяет настройки по умолчанию App.config, Так что просто используйте \Cake\Core\Configure::read('masterPath') и ты хороший.

РЕДАКТИРОВАТЬ

Если ваша цель — иметь разные пути конфигурации, вы можете сделать это следующим образом:

// my_config.php
return [
'MyConfig' => [
'masterPath' => '...',
...
]
]

Тогда используйте конфиг как это:

<?= \Cake\Core\Configure::read('MyConfig.masterPath') ?>
6

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector