Динамический конфигурационный файл с расширенным шаблоном

Я хочу создать файл конфигурации динамически, как во время выполнения. У меня есть стол с именем Settings в базе данных. Его структура похожа на:

|Column     |Type    |Length|
|id         |int     |11    |
|key        |varchar |100   |
|value      |varchar |255   |
|created_at |datetime|      |
|updated_at |datetime|      |

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

Я не хочу жестко закодировать какие-либо значения в конфигурационном файле. Итак, как мне решить эту задачу? Есть идеи?

Я подумал об идее. Что если я проверю params-local.php файл для параметра под названием installed со значением true, Если оно существует, мы говорим, что приложение успешно установлено, иначе мы отправим пользователя в installer стр.

0

Решение

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

Посмотреть здесь: Настройка нескольких баз данных нескольких арендаторов

Я хотел бы использовать сервер кэширования, такой как memcached. Убедитесь, что вы кэшируете значения после того, как прочитаете их из БД. Вы действительно не хотите, чтобы одни и те же запросы выполнялись снова и снова. Затем используйте замыкание, чтобы объединить данные, которые вы прочитали и кэшировали из БД, с любыми значениями по умолчанию, которые у вас есть, при этом все еще используя те же файлы конфигурации.

Если вы действительно хотите ускорить процесс в своем файле index.php, при чтении конфигурации вы можете создать свой собственный массив конфигурации любым удобным для вас способом (я бы по-прежнему использовал memcached) и запустить приложение с этой конфигурацией. Конфигурационные файлы — это просто массивы, которые используются при запуске приложения.

Во-первых, вы, вероятно, не сможете использовать какие-либо специфические функции yii в любом месте, потому что приложение Yii будет доступно до тех пор, пока вы не запустите его (с конфигурацией, которую я имею в виду), поэтому вам, возможно, придется создавать функции непосредственно в PHP.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]