Я пишу PHP-приложение, предназначенное для не-гиков, не программистов.Мне нужно создать страницу параметров с кучей «вариантов», а затем сохранить эти параметры ... где-то.Об использовании приложения базы данных (MySQL / PostgreSQL / SQLite) не может быть и речи, поскольку оно потребует больше настроек, чем нужно пользователю (я не хочу, чтобы пользователь выполнял какие-либо настройки, если он этого не хочет),Таким образом, единственное оставшееся решение - записать конфигурацию в файл конфигурации.С другой стороны, я также хочу, чтобы этот файл конфигурации был удобочитаемым для пользователя, если пользователь является фанатом и хочет редактировать файл конфигурации напрямую (или если он хочет редактировать файл удаленно через SSH или по любой другой причине)...)
Вот несколько потенциальных решений, которые я нашел:
Использование файла JSON ...
... Извлечение данныхиз файла, используя json_decode для преобразования данных, вывода их в HTML, извлечения любых изменений, кодирования обратно с использованием json_encode и т. д. Вы получаете изображение.Есть несколько вещей, которые мне не нравятся в этом методе, главная из которых заключается в том, что закодированные данные JSON с использованием PHP не будут хорошо отформатированы и их будет сложно редактировать без предварительного форматирования.
Использование XML-файла
Я не буду описывать это решение, потому что оно мне тоже не очень нравится ... и я не знаю, как использовать XSLT, и не очень хочу учиться... и потому что это довольно тяжелое решение, по крайней мере, по сравнению с решением JSON.Поправьте меня, если я ошибаюсь.
Использование INI-файла
Я люблю INI-файлы, правда, я их люблю!Я думаю, что они действительно наиболее читабельны, и их трудно испортить (например, синтаксические ошибки).Проблема с этим решением заключается в том, что нет никакого собственного способа записи / редактирования INI-файла.Я нашел тему, показывающую собственный метод для написания одного ... который может быть решением, которое я приму, если не найду ничего лучшего ...
Использование двух файлов
Это последнее решение кажется таким же разумным, как и решение INI.Фактически, я мог бы использовать INI-файл в качестве «ввода» (файл, который пользователь будет редактировать, если он этого хочет) и файл XML / JSON в качестве вывода (файл, который будет редактироваться PHP каждый раз, когда пользователь изменяет параметры, используявеб-интерфейс).На этом этапе наилучшим решением было бы попросить пользователя перезагрузить конфигурацию вручную, если он отредактировал файл конфигурации напрямую, чтобы файл «output» всегда был актуальным.
Я знаюни одно из вышеперечисленных решений не является идеальным, и поэтому я создал эту тему, чтобы попросить совета.Какое лучшее решение?Возможно (возможно) я пропустил еще одно решение.
И последнее: YAML не является допустимым решением, потому что намного проще испортить синтаксис, если вы к нему не привыкли.PHP также не является решением, потому что редактирование PHP с помощью PHP - это боль.PHP - хорошее решение, только если я хочу получить какую-то конфигурацию, но не редактировать ее напрямую через веб-интерфейс.