Skip to content

Миграция с 1.7 (и ниже) на 1.8 (и выше)

Coder edited this page Jul 7, 2018 · 6 revisions

Несколько слов о миграции с 1.7 (и ниже) на 1.8 (и выше) версии библиотеки PHP U-On.

В версии 1.8 был произведён рефакторинг кода, добавленно множество разных полезный функций, а так же выполнена миграция на концепцию Dependency Injection.

  • Добавлен класс Config (от него зависит класс API и все endpoint'ы) через который можно указывать параметры:
    • token - Ваш персональный токен для работы с API U-On
    • timeout - Время ожидание ответа от сервера
    • allow_redirects - Разрешить переадресацию запроса
    • http_errors - false - отображать коды ошибок, true - тригерить эксшепшены
    • decode_content - Декодировать контент
    • verify - Проивзодить верификацию данных
    • cookies - Принимать кукисы
    • tries - Максимальное количество попыток, которое необходимо предпринять чтобы избежать ошибки 429
    • seconds - Количестве секунд (может быть float или integer) которое нужно ожидать между попытками для 429й
  • Теперь не нужно указывать глобальную переменную UON_TOKEN, поддержка данной глобальной переменной была полностью удалена из библиотеки, поэтому теперь необходимо указывать ваш token через соотвествующий параметер класса Config.
$config = new Config();
$config->set('token', 'your-oun-token');
  • Добавлен класс API через который динамически инициализируются необходимые классы
$uon = new API($config);

Неймспэйсы классов

В результате рефакторинга все рабочие классы были перемещенны в директорию Endpoint, в соотвествии со стандартом PSR-4 неймспэйсы у данных классов были изменены.

Было:

\UON\Classname

Стало:

\UON\Endpoint\Classname

Что делать:

В верхней части Вашего скрипта, где через use подключаются классы, нужно заменить \UON на \UON\Endpoint, но лучше всего использовать специально созданный класс API, вызывая соотвествующие методы.

$config = new Config();
$config->set('token', 'your-oun-token');
$uon = new API($config);
// Для работы с пользователями
$uon->users->get(1);
$uon->users->search('some keys');
$uon->users->getEmail('[email protected]');
// Для работы с лидами
$uon->leads->get(1);
$uon->leads->getDate('2000-01-01', '2000-01-02');
// Для работы с заявками
$uon->requests->get(1);
$uon->requests->create($request_details);
$uon->requests->createTourist($tourist_details);
$uon->requests->getDate('2000-01-01', '2000-01-02');
// и так далее, полный список классов и их методов, а так же описание каждого метода тут:
// https://github.com/DrTeamRocks/uon/blob/master/README.API.md

Возвращаемый массив

Было:

array(
   'status' => 'status-code',
   'message' => array(
      'some', 'data', 'from', 'uon'
   )
)

Стало:

array(
   'code' => 'status-code',
   'reason' => 'description-of-status-code'
   'message' => array(
      'some', 'data', 'from', 'uon'
   )
)

Что делать:

Заменить status на code в обработчике ответа.