Конфигуратор файлов
Вступление
Файлы конфигурации, будь то .ini или .htaccess могут иметь комментарии. В связи с этим в комментариях могут быть использованы команды для парсера без ущерба для деятельности прочего программного обеспечения. Данный класс использует этот подход.
Как пользоваться?
Допустим вы создали в файле php переменную $a и присвоили ей значение равное 2.
<?php
$a = 2;
Чтобы изменить парсером значение переменной, нужно дополнить файл комментарием.
<?php
#flite name="a" label="Переменная $a" prefix = "$a = " value = "2" end
$a = 2;
Комментарий должен находиться перед изменяемым значением. Для того, чтобы парсер "обратил внимание" на комментарий в нем должно находиться ключевое слово flite. flite может быть заменено другим ключевым словом.
<?php
#flite = "_flite" end
#_flite name="a" label="Переменная $a" prefix = "$a = " value = "2" end
$a = 2;
Или flite может не быть вовсе. Так тоже верно
<?php
#value_1 name="a" label="Переменная $a" prefix = "$a = " value = "2" end
$a = 2;
Формат FLite мягок к синтаксису и позволяет писать разработчику в более удобном для него стиле. Знаки равенства необязательны. Зато обязательны двойные кавычки. Так правильно
<?php
#flite name : "a" ; label : "Переменная $a" ; prefix : "$a = " ; value : "2" end
$a = 2;
А так неправильно
<?php
#flite name=a label=Переменная $a prefix = $a = value = 2 end
$a = 2;
Также в формате FLite присутствует ключевое слово password.
<?php
#flite name="a" label="Переменная $a" password = "1" prefix = "$password = " value = "2" end
$password = 2;
Обязательны ключевые слова flite (или другое переопределенное) и end.
prefix отвечает за информацию, которая предшествует изменяемому значению. value содержит само изменяемое значение. Если в prefix или value находится двойная кавычки или обратный слэш, то эти символы нужно экранировать обратным слэшем.
Так правильно
<?php
#flite name="a" label="Переменная $a" prefix = "$a = '" value = "asdgasdg\"asdg" end
$a = 'asdgasdg"asdg';
А так неправильно
<?php
#flite name="a" label="Переменная $a" prefix = "$a = '" value = "asdgasdg"asdg" end
$a = 'asdgasdg"asdg';
Использование в php
<?php
$file; // путь к файлу с данными, которые нужно изменить
$flite = new Flite;
$flite->Parse($file, 'flite'); // вернет список ассоциативных массивов с name, label, value, password
$flite->Save($file, 'name', 'value', 'flite'); // сохранит значение в файле, экранировать ничего не надо
'flite' - является словом, на который парсер "обращает внимание" при парсинге.