Задать вопрос
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 классы

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

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

Похожие вопросы