ermakk/laravel-gis-meteo

Laravel package for GisMeteo weather API

Maintainers

Package info

github.com/ermakk/laravel-gis-meteo

Language:Blade

pkg:composer/ermakk/laravel-gis-meteo

Statistics

Installs: 20

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.15 2026-03-20 02:49 UTC

This package is auto-updated.

Last update: 2026-03-20 02:50:28 UTC


README

Пакет для интеграции с API GisMeteo в Laravel приложениях. Предоставляет удобный доступ к данным о погоде с использованием современных DTO и системой кэширования.

Особенности

  • 🌤️ Полные данные о погоде - почасовой прогноз, текущая погода, астрономические данные
  • 🔧 Система помощников - преобразование данных (направление ветра, облачность, УФ-индекс и др.)
  • 💾 Кэширование - Кэширование данных для бережного использования лимита на запросы
  • 🎨 Поддержка иконок - встроенные Blade компоненты для визуализации погоды
  • 🚀 Интеграция с Saloon - надежная работа с HTTP запросами

Установка

composer require ermakk/laravel-gis-meteo

Публикация конфигурации

php artisan vendor:publish --provider="Ermakk\GisMeteo\Providers\GisMeteoServiceProvider" --tag=config

Настройка .env

GIS_METEO_AUTH_TOKEN=your_gismeteo_api_token
GIS_METEO_CITY=Moscow
GIS_METEO_CACHE_TTL=86400

Конфигурация

Файл конфигурации config/gis-meteo.php:

return [
    'host' => env('GIS_METEO_HOST', 'https://api.gismeteo.net/v4/weather'),
    'auth' => [
        'token' => env('GIS_METEO_AUTH_TOKEN', ''),
    ],
    'cache_ttl' => env('GIS_METEO_CACHE_TTL', 86400), // 24 часа
    'default_city' => env('GIS_METEO_CITY', 'Moscow'),
    'debug_data' => '{}'
];

Использование

// Получение погоды для города по умолчанию
$weather = Weather::getWeather();

// Получение погоды для конкретного города
$weather = Weather::setCity('Saint Petersburg')->getWeather();

// Очистка кэша
Weather::clearCache('Moscow');

Работа с данными

// Получение данных о погоде
$weather = Weather::getWeather();

// Информация о местоположении
echo $weather->location['name']; // Название города

// Текущая погода
$current = $weather->current;
echo $current->temperature_air; // Температура
echo $current->description;     // Описание

// Направление ветра как DTO
$windDTO = $current->windDirection;
echo $windDTO->direction;        // "северный"
echo $windDTO->shortDirection;   // "С"

// Облачность
$cloudinessDTO = $current->cloudinessLabel;
echo $cloudinessDTO->description; // "Ясно", "Малооблачно" и т.д.

// Тип осадков
$precipitationTypeDTO = $current->precipitationType;
echo $precipitationTypeDTO->type;    // "Дождь", "Снег" и т.д.
echo $precipitationTypeDTO->symbol;  // Эмодзи символ

// Интенсивность осадков
$precipitationIntensityDTO = $current->precipitationIntensity;
echo $precipitationIntensityDTO->intensity;    // "Небольшой дождь/снег"
echo $precipitationIntensityDTO->recommendation; // Рекомендации