Доступ к конфигурации::считывание контроллера в CakePHP
У меня есть отдельный конфигурационный файл для моего приложения CakePHP, который загружен в bootstrap.php . Мой вопрос в том, как я могу получить доступ к переменным конфигурации в моем контроллере? Т.Е. Как я могу выполнить функцию Configure::read ('переменная') в контроллере? Спасибо!
4 answers
Пожалуйста, ознакомьтесь с документацией. Там довольно хорошо объясняется, как загружать пользовательские конфигурационные файлы: http://book.cakephp.org/2.0/en/development/configuration.html#loading-configuration-files
По умолчанию, как описано в самом классе, он объединит свои конфигурации с уже загруженными конфигурациями.
Configure::read('variable')
Затем загружает содержимое новой конфигурации, если она перезаписывает конфигурацию приложения.
В моем пользовательском файле конфигурации /app/Config/myconfig.php
Я определяю свои переменные конфигурации:
<?php
$config = array(
'variable' => 'myValue'
);
В моем действии я читаю, могу прочитать файл конфигурации и получить доступ к переменным:
Configure::load('myconfig', 'default');
$configValue = Configure::read('variable');
echo $configValue; // myValue
Вот так:
App/Config/example.php
<?php
$config = array(
'MyConf' => array(
'secret' => '1234',
)
);
В вашем контроллере
Configure::load('example');
Configure::read('MyConf.secret');
Здесь я нашел еще одно хорошее решение. нажмите здесь
Создайте пользовательскую конфигурацию
Во-первых, создайте файл в каталоге app/config
с именем, которое вы хотите.
Example: my_app_settings.php
Теперь в этот файл вы можете добавить любые настройки, которые хотите, используя массив $config
<?php
$config['MyApp']['mysql_user'] = 'bob';
$config['MyApp']['mysql_pass'] = 'foobar';
// etc etc
Далее вам нужно сообщить своему приложению, чтобы оно загрузило этот новый конфигурационный файл. Я склонен делать это в bootstrap.php чтобы убедиться, что он загружен во всем приложении (хотя, если есть лучшее/более подходящее место, обязательно дайте мне знать)
<?php
// app/config/bootstrap.php
// snip
Configure::load('my_app_settings');
Теперь в любом месте вашего приложения у вас есть доступ к вашим пользовательским настройкам
<?php
$mysqlUser = Configure::read('MyApp.mysql_user');