Файл конфигурации CakePHP - PullRequest
       13

Файл конфигурации CakePHP

2 голосов
/ 25 февраля 2012

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

Я давно уже сталкивался с решением по переключению кода. Не могу найти его сейчас. Как вы, ребята, делаете это?

Ответы [ 4 ]

5 голосов
/ 20 ноября 2012

У меня есть настройки с локальными конфигурационными файлами.Я добавляю следующие строки внизу app / config / core.php:

if(file_exists(ROOT.'/app/config/core.local.php')) {
    include_once(ROOT.'/app/config/core.local.php');
}

В core.local.php я могу переопределить все параметры, которые отличаются на локальном компьютере.То же самое относится и к database.php.

1 голос
/ 25 февраля 2012

Это сработало

class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'username',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public $live = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'db.HOST.net',
        'login' => 'username',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public function __construct(){
        if (isset($_SERVER) && isset($_SERVER['SERVER_NAME'])) {
            if (strpos($_SERVER['SERVER_NAME'], 'localhost') === false) {
                $this->default  = $this->live;
            }       
        }
    }

}
1 голос
/ 25 февраля 2012

Я использую класс конфигурации, который делает именно это: http://www.dereuromark.de/2010/08/17/development-vs-productive-setup

Недавно я переписал его для 2.0 в качестве версии плагина. Теперь он заботится о тестовых средах и сокращает количество строк конфигурации, которые вам придется написать: http://www.dereuromark.de/2012/02/25/dynamic-database-switching/

1 голос
/ 25 февраля 2012

Я думаю, что на основе IP в локальной среде IP равен 127.0.0.1, а в реальной среде IP никогда не бывает 127.0.0.1

Мой взгляд

Спасибо

проверьте с помощьюlib / Cake / Utility / String.php см. функцию с именем public static function uuid ()

cheers

Еще раз спасибо

...