2017-01-14 2 views
1

Я расширяю приложение, которое хранит данные конфигурации в php-файле. Файл выглядит следующим образом:Обновление php config из сценария php

defined('DB_NAME') or define('DB_NAME', ''); 
defined('DB_USERNAME') or define('DB_USERNAME', ''); 
defined('DB_PASSWORD') or define('DB_PASSWORD', ''); 

Скажем, я хочу, чтобы параметр DB_NAME настраивается внутри самого приложения PHP, что позволяет избежать изменения вручную в config.php. Я подумал о том, чтобы прочитать файл, ища строку «DB_NAME», выполнить некоторые манипуляции с строкой и записать содержимое обратно. Однако это не кажется очень изящным. Есть ли другой путь?

+0

Использовать реализацию класса файла конфигурации. – arkascha

+0

Я не эксперт, но что мешает вам получить переменную из POST, а затем установить ее с помощью define()? –

ответ

0

Один из способов сделать это:

  • Скопируйте весь конфиг в config.tpl, который будет использоваться в качестве шаблона
  • изменить его, чтобы содержать уникальные заполнители, как это: defined('DB_NAME') or define('DB_NAME', '%DB_NAME%');
  • написать класс функцию, которая заменяет заполнители со значениями в шаблоне и записи на диск, как config.php

Единственное, что нужно заботиться о являются уникальными заполнителями

1

Предлагаю вам избежать исходного кода PHP и перейти на любой стандартный формат данных, в котором у вас уже есть кодировщики и декодеры. Там очень много, чтобы выбрать из:

+0

Это определенно, как я буду делать это в своих проектах в будущем! – Andy

Смежные вопросы