Настройки
Настройки хранятся в папке config/app.php.
# config/app.php return [ // … 'Contacts' => [ 'phone' => '123456789', 'email' => 'mail@example.ru' ], ];
Получить указанные настройки можно через метод Configure::read()
.
use Cake\Core\Configure; Configure::read('Contacts.phone'); // 123456789 Configure::read('Contacts.email'); // mail@example.ru
Если указанная настройка не задана, то код вернёт «null».
Также можно задать значение по умолчанию.
// Если 'Contacts.phone' не задан, то метод вернёт текст "12345" Configure::read('Contacts.phone', '12345');
Подключение файлов настроек происходит в файле «config/bootstrap.php».
Изменить или добавить настройки
Изменить или добавить настройки можно через метод Configure::write()
.
if ($city == 'Москва') { Configure::write('Contacts.phone', '987654321'); } Configure::read('Contacts.phone'); // 987654321
Данный метод добавляет или изменяют настройку в
текущем коде, т.е. в самом файле « config/app.php » он не делает никаких изменений.Настройки в отдельном файле
Задать свой файл настроек можно в файле app/bootstrap.php через метод Configure::load()
.
# app/bootstrap.php try { Configure::config('default', new PhpConfig()); Configure::load('app', 'default', false); // Подключение «config/custom.php» Configure::load('custom'); }
Теперь настройки будут загружаться с файлов «config/app.php» и «config/custom.php». Если один и тотже параметр будет указан в обоих файлах, то будет загружаться тот, который указан в «config/custom.php».
Проверить настройку на существование
Проверить, что указанная настройка задана в файле, можно через метод Configure::check()
.
if (Configure::check('Contacts.fax')) { // … }
Метод Configure::check()
возвращает «true» или «false».
Выводить ошибку (исключение), если не задана настройка
Выводить ошибку (исключение), если не задана настройка можно через метод readOrFail()
.
Configure::readOrFail('Contacts.address');
Если не задана настройка «Contacts.address», то код вернёт исключение «RuntimeException» с текстом «Expected configuration key "Contacts.address" not found».
Поддержать автора