Доступ к конфигурации::считывание контроллера в CakePHP


У меня есть отдельный конфигурационный файл для моего приложения CakePHP, который загружен в bootstrap.php . Мой вопрос в том, как я могу получить доступ к переменным конфигурации в моем контроллере? Т.Е. Как я могу выполнить функцию Configure::read ('переменная') в контроллере? Спасибо!

Author: tereško, 2014-04-24

4 answers

Пожалуйста, ознакомьтесь с документацией. Там довольно хорошо объясняется, как загружать пользовательские конфигурационные файлы: http://book.cakephp.org/2.0/en/development/configuration.html#loading-configuration-files

По умолчанию, как описано в самом классе, он объединит свои конфигурации с уже загруженными конфигурациями.

Configure::read('variable')

Затем загружает содержимое новой конфигурации, если она перезаписывает конфигурацию приложения.

 1
Author: mark, 2014-04-24 12:09:02

В моем пользовательском файле конфигурации /app/Config/myconfig.php Я определяю свои переменные конфигурации:

<?php

$config = array(
    'variable' => 'myValue'
);

В моем действии я читаю, могу прочитать файл конфигурации и получить доступ к переменным:

Configure::load('myconfig', 'default');
$configValue = Configure::read('variable');
echo $configValue;  // myValue
 3
Author: Simon, 2014-04-24 12:20:31

Вот так:

App/Config/example.php

<?php
$config = array(
    'MyConf' => array(
        'secret' => '1234',
        )
);

В вашем контроллере

Configure::load('example');
Configure::read('MyConf.secret');
 2
Author: cveloso, 2014-04-24 12:18:25

Здесь я нашел еще одно хорошее решение. нажмите здесь

Создайте пользовательскую конфигурацию Во-первых, создайте файл в каталоге 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');
 2
Author: Faisal, 2016-08-08 10:59:13