Компоненты библиотеки/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#######

* * * * *

Город:

Самара

* * * * *

Организация:

ИП “Евгений”

* * * * *