Приветствую. Разработал несколько классов для взаимодействия с API битрикса. Требовалось вывести статистику для каждого сотрудника: количество звонков, сделок и прочего. Прошу оценить и покритиковать мой код. Подробнее ниже
Ссылка на гитхаб:
https://github.com/afagorn/bitrix24-apiВозможности класса
Для каждой "сущности" битрикса(звонки, счета и прочее) создается отдельный класс, где прописывается нужный фильтр для битрикса и "обертки-методы", которые устанавливают свой набор аргументов и заполняют массив пользовательскими данными. Например, метод getInvoicesHistoryByEmployeesId(), который принимает айди пользователей, дату и статус платежей. Сделаны эти обертки, чтобы не заморачиваться с ручным заполнением массива данных для запроса в битрикс
Краткая суть работы
Есть базовый класс Base, где указаны общие методы и переменные. Важная переменная - это requestParameters(геттер getRequestParameters), где в дочерних классах указываются данные для запроса в битрикс. И также в нем прописываются значения из массива класса requestData. Например:
[
"FILTER" => array(
"STATUS_ID" => $this->requestData['statusId'],
">=PAY_VOUCHER_DATE" => $this->requestData['dateStart'],
"<=PAY_VOUCHER_DATE" => $this->requestData['dateEnd'],
'RESPONSIBLE_ID' => $this->requestData['employeesId'],
),
];
В makeRequest() передаются клиентские данные, идет их обработка(дата превращается в нужный формат для битрикса) и merge с переменной класса $requestData. Потом идет отправка данных из переменных класса
Класс TipBitrix24 как бы общий класс, который создает объекты в виде цепочке. Пример можно глянуть в файле Example. Сделал для того чтобы не создавать каждый раз объект для каждого класса
Мои сомнения
Правильно ли я организовал добавление массива для битрикса? А точнее метод getRequestParameters()?
Или то что нужно прописывать данные изначально в собственный массив? Через makeRequest()?
Правильно ли я сделал общую "точку входа", то есть класс TipBitrix24? Или вообще не стоит делать так?
P.S. Классы написаны для Yii, поэтому используются некоторые Yii классы
Буду благодарен за любой отклик, критику и советы