afagorn
@afagorn
Пытаюсь стать хорошим веб-программистом

Правильно ли я смог организовать обработку данных API с помощью классов?

Приветствую. Разработал несколько классов для взаимодействия с 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 классы

Буду благодарен за любой отклик, критику и советы
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Teamlead Ставрополь
от 25 000 до 50 000 руб.
WEBINAR Москва
от 190 000 руб.
от 60 000 руб.
11 дек. 2019, в 01:58
2500 руб./за проект
11 дек. 2019, в 01:57
1000 руб./в час
11 дек. 2019, в 00:13
600 руб./в час