melomaniac
(Melomaniac2012)
June 13, 2013, 5:07pm
1
Всем добрый вечер Вообщем столкнулся со следующей проблемой. Нужно хранить настройки приложения в БД и выводить их значения в файле config.php. К примеру
‘basePath’=>dirname(FILE ).DIRECTORY_SEPARATOR.’…’,
'name'=> [b]$name[/b],
'language'=>[b]$lang[/b], и т.д.
День убил, результата ноль, подскажите пожалуйста как это реализовать
Наверное, лучше не выводить в основном конфиге, а переопределять в отдельном, который уже инклюдится в основной.
Ну, по тому же принципу, как создается локальный конфиг, только файл создавать прямо из админки.
tuschkan
(O Turansky)
June 13, 2013, 5:33pm
3
Настройки БД хранятся в отдельном файле и подключаются так в main.php:
'db'=>require('db.php'),
файл db.php лежит там же, где и main.php
return array(
'connectionString'=>'mysql:host=localhost;dbname=dbname',
'username'=>'',
'password'=>'',
'charset'=>'utf8',
'schemaCachingDuration'=>3600,
);
melomaniac
(Melomaniac2012)
June 13, 2013, 5:52pm
4
ORey , спасибо, но пример реализации бы
tuschkan , вы меня не совсем правильно поняли, мне нужно не выносить настройки БД, а именно хранить значения конфига в БД, чтобы не лазить в код, а менять их с админки можно было
Что-нибудь типа
$main = require(PROTECTED_PATH . 'config/main.php');
$dynamic = require(PROTECTED_PATH . 'config/dynamic.php');
Yii::createWebApplication(CMap::mergeArray($main, $dynamic))->run();
Это всё идет в index.php.
В файле main.php лежат неизменяемые настройки и, к примеру, какие-нибудь разумные умолчания.
Файл dynamic.php пересоздается при нажатии кнопки "сохранить" в админке, и содержит в себе переопределяющие настройки приложения.
Как из приложения создать файл необходимой структуры, думаю, знаете.
А вообще, я почти уверен, что где-нибудь лежит готовый экстеншн, стоит только погуглить.
anzeky
(Antonpinsk)
June 14, 2013, 9:14am
8
Статья на хабре про то, что вам нужно реализовать - habrahabr.ru/post/172737
melomaniac
(Melomaniac2012)
June 15, 2013, 11:17am
9
Спасибо, но кода многовато, хочется чего-то простого, ведь по сути чего нужно:
Есть форма для редактирования, к примеру:
Заголовок - сайта заголовок
Описание - описание
Пароль к админке - пароль
Вот буквально эти три значения и нужно хранить в БД.
И выводить их значения в файле main.php через переменные к примеру
‘name’=>$name,
‘language’=>$lang, и т.д.
Неужели нет простого способа это делать
Кстати, я в начале немного ошибся, конечно же файл main.php, а не config.php