softlabnet / weather
Weather test example
Requires
- php: >=7.1.0
- guzzlehttp/guzzle: ^6.2
- illuminate/support: 5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*
This package is auto-updated.
Last update: 2025-06-19 19:16:19 UTC
README
Пакет предназначен для получения данных о погоде через сторонние ресурсы
Установка
Packagist тормозит с обновлением, положил композер, который подключает покат по симлинку. Нужно дополнительно зайти в папку packages и склонировать с гитхаба:
git clone https://github.com/softlab2/weather.git
С помощью Composer
composer require softlabnet/weather
Публикуем файл настроек
php artisan vendor:publish --provider="Softlab\Weather\WeatherServiceProvider" --tag="weather"
Описание
Пакет предоставляет погодный апи для сайта.
Можно использовать несколько источников данных, для смены источника используется переменная WEATHER_SOURCE в файле .env, по умолчанию источник yandex.
Регистрация источника данных в сервис провайдере приложения:
$this->app['weather']->add('yandex', \Softlab\Weather\Sources\YandexSource::class);
Класс источника данных должен расширять базовый класс \Softlab\Weather\Source и реализовывать интерфейс \Softlab\Weather\SourceInterface:
Метод формирует запрос к источнику данных
public function prepareRequest( Point $point ) : WeatherRequest;
Метод приводит ответ от источника данных к стандартному виду public function prepareResponse( $data ) : WeatherResponse;
Конфигурация для источника данных: url, api key и т.д. находятся в файле config/weather.php
Чтобы не запрашивать каждый раз данные от источника, для каждой точки данные хранятся в кэше.
Сейчас из ответа берется только температура.