Компоненты библиотеки/BA_KeyValue_combinator.md
Что такое BA_KeyValue_combinator?
Позволяет создать примитивный отчёт на основе данных формы обратной связи. Комбинирует название поля и его значение в виде строки с разделителем.
Пользователь может определить, как названия полей будут отображаться в отчёте.
Подключение
include(__DIR__.'/classes/BA_KeyValue_combinator.php');
use classes\BA_KeyValue_combinator;
$combinator = new BA_KeyValue_combinator();
В include передаётся путь до файла.
В use указывается пространство имён, в котором хранятся классы. Изначально в данной библиотеке классы хранятся в каталоге “classes” и относятся к пространству имён “classes”.
Методы
setSeparator
Вызов:
$combinator->setSeparator($newSeparator);
В качестве параметра передаётся строка, которая будет отделять заголовок поля от его значения.
Например: ": " или " = "
setField
Вызов:
$combinator->setsetField($name, $caption, $value);
$name - строка. Название поля на форме или ключа массива. $caption - строка. Название поля, как оно будет отображено в отчёте. $value (необязательный параметр) - любой тип. Значение поля формы или элемента массива с ключом $name;
deleteField
Вызов:
$combinator->deleteField($name);
$name - строка. Название поля на форме или ключа массива.
Удаляет поле из списка полей, используемых в отчёте
setValue
Вызов:
$combinator->setValue($name, $value);
Устанавливает значение $value для поля $name. Оба параметра - строковые
deleteValue
Вызов:
$combinator->deleteValue($name);
Удаляет значение поля $name
$name - строка.
combineString
Вызов:
$combinator->combineString($name);
Комбинирует название поля $name и его значение, возвращает строку.
combineAll
Вызов:
$combinator->combineAll();
Без параметров.
Комбинирует название всех заданных полей и их значения.
Возвращает массив строк.
setDataSeparator
Вызов:
$combinator->setDataSeparator($dataSeparator);
$dataSeparator (необязательный параметр) - строка, отделяющая одну пару поле/значение от другой.
valueInNewLineOn и valueInNewLineOff
Без параметров. Включают или выключают режим, когда название поля и разделитель в отчёте выводятся на одной строке, а значение - на другой.
Вроде этого:
Имя:
Евгений
Город:
Самара
Рекомендация: используйте подобный перевод строки в сочетании с методом setDataSeparator, если в обработке присутствуют поля со значениями из нескольких строк.
Цепной вызов методов
Следующие методы возвращают указатель на свой объект, а значит - их можно вызывать цепочкой:
- setSeparator
- setField
- deleteField
- setValue
- deleteValue
- setDataSeparator
- valueInNewLineOn
- valueInNewLineOff
А так-же некоторые сеттеры, не вошедшие в эту справку.
Пример кода
$combinator = new BA_KeyValue_combinator();
$combinator
->setField('name', 'Имя')
->setField('phone', 'Телефон')
->setField('city', 'Город')
->setField('company', 'Организация')
->setValues($_POST)
->setSeparator(': ')
->setDataSeparator('* * * * *')
->valueInNewLineOn();
$strings = $combinator->combineAll();
На выходе получится что-то вроде этого:
Имя:
Евгений
* * * * *
Телефон:
+7888#######
* * * * *
Город:
Самара
* * * * *
Организация:
ИП “Евгений”
* * * * *