bugrov / yandex-schedule
PHP SDK Яндекс.Расписаний
Requires
- php: >=7.4
- guzzlehttp/guzzle: 7.0
Requires (Dev)
- symfony/var-dumper: ^5.4
This package is auto-updated.
Last update: 2025-05-10 18:07:17 UTC
README
Установка
Поддерживается установка с помощью менеджера пакетов.
$ composer require bugrov/yandex-schedule dev-main
Или
$ php composer.phar require bugrov/yandex-schedule dev-main
Как подключиться к Яндекс.Расписаниям
Перед использованием доступных методов вызываем метод setApiKey
, передав в него API-ключ
\BugrovWeb\YandexSchedule\Transport::setApiKey('your-api-key');
Настройка и получение параметров
Метод setApiKey
Устанавливает ключ для доступа к API Яндекс станций
public static function setApiKey(string $apiKey)
$apiKey
- ключ API (подробнее о его получении тут)
Пример использования
\BugrovWeb\YandexSchedule\Transport::setApiKey('your-api-key');
Метод getApiKey
Получает ранее установленный ключ API
public static function getApiKey()
Пример использования
echo \BugrovWeb\YandexSchedule\Transport::getApiKey();
Метод setFormat
Устанавливает формат возвращаемых данных
public static function setFormat(string $format)
$format
- формат возвращаеммых данных. Допустимые значения - json
, xml
Пример использования
\BugrovWeb\YandexSchedule\Transport::setFormat('xml');
Метод getFormat
Получает ранее установленный формат данных
public static function getFormat()
Пример использования
echo \BugrovWeb\YandexSchedule\Transport::getFormat();
Метод setLang
Устанавливает язык возвращаемой информации
public static function setLang(string $lang)
$lang
- код языка в формате <код языка>_<код страны>. Доступные значения - ru_RU
и uk_UA
Пример использования
\BugrovWeb\YandexSchedule\Transport::setLang('ru_RU');
Метод getLang
Получает ранее установленный язык возвращаемой информации
public static function getLang()
Пример использования
echo \BugrovWeb\YandexSchedule\Transport::getLang();
Работа с Яндекс.Расписанием
Метод getScheduleBetweenStations
Получает список рейсов, следующих от указанной станции отправления к указанной станции прибытия и информацию по каждому рейсу
public static function getScheduleBetweenStations(string $from, string $to, string $system = Transport::SYSTEM_TYPE_YANDEX, string $showSystems = Transport::SYSTEM_TYPE_YANDEX, string $date = null, string $transportTypes = null, int $offset = 0, int $limit = 100, bool $addDaysMask = false, bool $transfers = false)
$from
- Код станции отправления. Должен быть указан в системе кодирования$to
- Код станции прибытия. Должен быть указан в системе кодирования$system
- Система кодирования, в которой указывается код станции отправления и код станции прибытия (параметры from, to) в запросе. Возможные значения:yandex
либоTransport::SYSTEM_TYPE_YANDEX
(значение по умолчанию)iata
либоTransport::SYSTEM_TYPE_IATA
sirena
либоTransport::SYSTEM_TYPE_SIRENA
express
либоTransport::SYSTEM_TYPE_EXPRESS
esr
либоTransport::SYSTEM_TYPE_ESR
$showSystems
- Система кодирования, коды которой следует добавить к описанию станций в результатах поиска (элемент codes, вложенный в элементы from и to). Поддерживаемые значения:yandex
либоTransport::SYSTEM_TYPE_YANDEX
(значение по умолчанию)esr
либоTransport::SYSTEM_TYPE_ESR
$date
- Дата, на которую необходимо получить список рейсов. Необязательное$transportTypes
- Тип транспортного средства. Необязательное. Возможные значения:plane
либоTransport::TRANSPORT_TYPE_PLANE
train
либоTransport::TRANSPORT_TYPE_TRAIN
suburban
либоTransport::TRANSPORT_TYPE_SUBURBAN
bus
либоTransport::TRANSPORT_TYPE_BUS
water
либоTransport::TRANSPORT_TYPE_WATER
helicopter
либоTransport::TRANSPORT_TYPE_HELICOPTER
$offset
- Смещение относительно первого результата поиска. По умолчанию 0$limit
- Максимальное количество результатов поиска в ответе. По умолчанию 100$addDaysMask
- Признак, который указывает, что для каждой нитки в ответе следует вернуть календарь хождения — элемент schedule, вложенный в элемент segments. Поддерживаемые значения:false
- календарь возвращать не нужно (значение по умолчанию)true
- для каждой нитки следует вернуть календарь хождения
$transfers
- Признак, разрешающий добавить к результатам поиска маршруты с пересадками. Поддерживаемые значения:false
- в результатах поиска не должно быть маршрутов с пересадками (значение по умолчанию)true
- найденные маршруты с пересадками следует добавить к результатам поиска
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getScheduleBetweenStations('c146', 'c213');
Метод getScheduleOfFlightsByStation
Получает список рейсов, отправляющихся от указанной станции и информацию по каждому рейсу
public static function getScheduleOfFlightsByStation(string $station, string $system = Transport::SYSTEM_TYPE_YANDEX, string $showSystems = Transport::SYSTEM_TYPE_YANDEX, string $date = null, string $transportTypes = null, string $direction = null, string $event = Transport::EVENT_TYPE_DEPARTURE)
$station
- Код станции. Должен быть указан в системе кодирования$system
- Система кодирования, в которой указывается код станции (параметр station) в запросе. Возможные значения:yandex
либоTransport::SYSTEM_TYPE_YANDEX
(значение по умолчанию)iata
либоTransport::SYSTEM_TYPE_IATA
sirena
либоTransport::SYSTEM_TYPE_SIRENA
express
либоTransport::SYSTEM_TYPE_EXPRESS
esr
либоTransport::SYSTEM_TYPE_ESR
$showSystems
- Система кодирования, в которой необходимо получить коды станций (в элементе ответа codes, вложенном в элемент station). Возможные значения:yandex
либоTransport::SYSTEM_TYPE_YANDEX
(значение по умолчанию)esr
либоTransport::SYSTEM_TYPE_ESR
all
либоTransport::SYSTEM_TYPE_ALL
$date
- Дата, на которую необходимо получить список рейсов. Необязательное$transportTypes
- Тип транспортного средства. Необязательное. Возможные значения:plane
либоTransport::TRANSPORT_TYPE_PLANE
train
либоTransport::TRANSPORT_TYPE_TRAIN
suburban
либоTransport::TRANSPORT_TYPE_SUBURBAN
bus
либоTransport::TRANSPORT_TYPE_BUS
water
либоTransport::TRANSPORT_TYPE_WATER
helicopter
либоTransport::TRANSPORT_TYPE_HELICOPTER
$direction
- Код направления, по которому необходимо получить список рейсов электричек по станции (например, «arrival», «all» или «на Москву»)$event
- Событие, для которого нужно отфильтровать нитки в расписании. Поддерживаемые значения:departure
либоTransport::EVENT_TYPE_DEPARTURE
(по умолчанию)arrival
либоTransport::EVENT_TYPE_ARRIVAL
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getScheduleOfFlightsByStation('s9600213');
Метод getListOfStations
Получает список станций следования нитки по указанному идентификатору нитки, информацию о каждой нитке и о промежуточных станциях нитки
public static function getListOfStations(string $uid, string $showSystems = null, string $date = null, string $from = null, string $to = null)
$uid
- Идентификатор нитки в Яндекс.Расписаниях$showSystems
- Система кодирования, в которой необходимо получить коды станций (в элементе ответа codes, вложенном в элемент station). Необязательное. Возможные значения:yandex
либоTransport::SYSTEM_TYPE_YANDEX
esr
либоTransport::SYSTEM_TYPE_ESR
all
либоTransport::SYSTEM_TYPE_ALL
$date
- Дата, на которую необходимо получить список рейсов. Необязательное$from
- Код станции отправления. Должен быть указан в системе кодирования$to
- Код станции прибытия. Должен быть указан в системе кодирования
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getListOfStations('932X_1_2');
Метод getListOfNearestStations
Получает список станций, находящихся в указанном радиусе от указанной точки. Максимальное количество возвращаемых станций — 50
public static function getListOfNearestStations(string $lat, string $lng, int $distance, int $offset = 0, int $limit = 100, string $stationTypes = null, string $transportTypes = null)
$lat
- Широта$lng
- Долгота$distance
- Радиус, в котором следует искать станции, в километрах$offset
- Смещение относительно первого результата поиска. По умолчанию 0$limit
- Максимальное количество результатов поиска в ответе. По умолчанию 100$stationTypes
- Типы запрашиваемых станций (несколько типов можно перечислить через запятую). Необязательное. Поддерживаемые значения:station
- станцияplatform
- платформаstop
- остановочный пунктcheckpoint
- блок-постpost
- постcrossing
- разъездovertaking_point
- обгонный пунктtrain_station
- вокзалairport
- аэропортbus_station
- автовокзалbus_stop
- автобусная остановкаunknown
- станция без типаport
- портport_point
- портпунктwharf
- пристаньriver_port
- речной вокзалmarine_station
- морской вокзал
$transportTypes
- Типы транспортного средства, для которых нужно искать станции. Несколько типов одновременно можно указать через запятую, например, plane,train,bus. Необязательное. Поддерживаемые значения:plane
либоTransport::TRANSPORT_TYPE_PLANE
train
либоTransport::TRANSPORT_TYPE_TRAIN
suburban
либоTransport::TRANSPORT_TYPE_SUBURBAN
sea
либоTransport::TRANSPORT_TYPE_SEA
river
либоTransport::TRANSPORT_TYPE_RIVER
helicopter
либоTransport::TRANSPORT_TYPE_HELICOPTER
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getListOfNearestStations('50.440046', '40.4882367', 50);
Метод getNearestCity
Получает информацию о ближайшем к указанной точке городе
public static function getNearestCity(string $lat, string $lng, int $distance = 10)
$lat
- Широта$lng
- Долгота$distance
- Радиус, в котором следует искать ближайший город, в километрах (по умолчанию 10)
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getNearestCity('50.440046', '40.4882367', 50);
Метод getCarrierInfo
Получает информацию о перевозчике по указанному коду перевозчика
public static function getCarrierInfo(string $code, string $system = Transport::SYSTEM_TYPE_YANDEX)
$code
- Код перевозчика$system
- Система кодирования, в которой указывается код перевозчика (параметр code) в запросе. Возможные значения:yandex
либоTransport::SYSTEM_TYPE_YANDEX
(значение по умолчанию)iata
либоTransport::SYSTEM_TYPE_IATA
sirena
либоTransport::SYSTEM_TYPE_SIRENA
express
либоTransport::SYSTEM_TYPE_EXPRESS
esr
либоTransport::SYSTEM_TYPE_ESR
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getCarrierInfo('TK', Transport::SYSTEM_TYPE_IATA);
Метод getAllAvailableStations
Получает полный список станций, информацию о которых предоставляют Яндекс.Расписания
public static function getAllAvailableStations()
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getAllAvailableStations();
Метод getCopyright
Получает данные о Яндекс.Расписаниях: URL сервиса, баннер в различных цветовых представлениях и уведомительный текст
public static function getCopyright()
Пример использования
Transport::setApiKey('your-api-key'); $res = Transport::getCopyright();