brainsrage / tourvisor
Integration with tourvisor.ru
Requires
- php: ^8.0
- ext-json: *
- guzzlehttp/guzzle: ~7.0
- illuminate/support: ^5|^6|^7|^8|^9
Requires (Dev)
- symfony/var-dumper: ^4.1
README
PHP обертка для работы с API tourvisor.ru
Документация по API находится на диске.
Библиотека еще в разработке. Не стесняйтесь создавать issue
Установка
Установка в проект осуществляется при помощи composer:
$ composer require brainsrage/tourvisor
Минимальные системные требования:
php: ^7.1.3
Использование
Логика работы с библиотекой проста - создается один объект ядра библиотеки с http клиентом, который имеет метод getResults
, принимающий единственный параметр - объект запроса из Tourvisor\Requests
. В каждом классе запроса есть docBlock с описанием параметров, которые можно передать в запрос.
use Tourvisor\Tourvisor; use Tourvisor\Client; // создаем объект ядра библиотеки с http клиентом $tourvisor = new Tourvisor(new Client('login-in@tourvisor.ru', 'password')); // ...
Создание поискового запроса:
use Tourvisor\Requests\SearchRequest; // ... $tourvisor ... $searchRequest = new SearchRequest(); $searchRequest->country = 30; $searchRequest->departure = 1; // остальные параметры можно узнать в docBlock класса запроса $result = $tourvisor->getResult($searchRequest); // В ответ придет идентификатор запроса, например 1015951847
Получение результатов поискового запроса:
use Tourvisor\Requests\SearchResultRequest; // ... $tourvisor ... $searchResultRequest = new SearchResultRequest(); // передаем обязательный параметр - идентификатор запроса $searchResultRequest->requestid = 1015951847; $result = $tourvisor->getResult($searchResultRequest);
Интеграции
Laravel >= 5.5
Библиотека использует автоматическую регистрацию сервис-провайдера.
перед использованием добавльте две переменные в .env
файл:
TOURVISOR_LOGIN="login-in@tourvisor.ru"
TOURVISOR_PASSWORD="password"
Использование сервиса в контроллере
/** * @param \Tourvisor\Tourvisor $tourvisor * @param \Tourvisor\Requests\HotToursRequest $hotToursRequest * @throws \Tourvisor\Exceptions\AuthorizeException * @throws \Tourvisor\Exceptions\HasEmptyRequiredParamsException * @throws \Tourvisor\Exceptions\ResponseException */ public function index(\Tourvisor\Tourvisor $tourvisor, \Tourvisor\Requests\HotToursRequest $hotToursRequest) { $hotToursRequest->items = 10; $hotToursRequest->city = 1; $result = $tourvisor->getResult($hotToursRequest); return response($result); }
Либо можно извлечь сервис из любого места приложения при помощи сервис-контейнера
$tourvisor = app('tourvisor'); // или $tourvisor = app()->make('tourvisor');
Или использовать фасад Tourvisor
:
// ... сформировали $searchRequest $result = \Tourvisor::getResult($searchRequest);
Помощь в разработке
- Fork в свой аккаунт.
- Редактирование
- pull-request