PHPackages                             canducci/weather - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. canducci/weather

ActiveLibrary

canducci/weather
================

Canducci Weather

v0.1.0(10y ago)013MITPHPPHP &gt;=5.3.0

Since Nov 16Pushed 10y agoCompare

[ Source](https://github.com/netdragoon/weather)[ Packagist](https://packagist.org/packages/canducci/weather)[ Docs](https://github.com/netdragoon/weather)[ RSS](/packages/canducci-weather/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

Weather
=======

[](#weather)

### Previsão do Tempo

[](#previsão-do-tempo)

[![Canducci Weather](https://camo.githubusercontent.com/a63c734517bdf7245b8a6b10783bc9782250520385ebdcc68b165fe659479417/687474703a2f2f693636362e70686f746f6275636b65742e636f6d2f616c62756d732f767632352f6e6574647261676f6f6e2f313434373437373134385f576561746865725f7a7073637a7836667a72362e706e67)](https://packagist.org/packages/canducci/weather)

[![Build Status](https://camo.githubusercontent.com/272d94fad821512dcf1011b6675eee636f4c7154154fd0c985be46f7dc21a6d4/68747470733a2f2f7472617669732d63692e6f72672f6e6574647261676f6f6e2f776561746865722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/netdragoon/weather)[![Packagist](https://camo.githubusercontent.com/a1d2ff5f976ca047ce12c11f436c81c7a6209bc3dcdd793dffb9bab5ccbc56e9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f63616e64756363692f776561746865722e7376673f7374796c653d666c6174)](https://packagist.org/packages/canducci/weather)[![Packagist](https://camo.githubusercontent.com/475aecb957dbe3aaaffce516a4cd3dcb8982852e2b434b4ba369017dc4e28dae/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f63616e64756363692f776561746865722e737667)](https://packagist.org/packages/canducci/weather)[![Packagist](https://camo.githubusercontent.com/08597fdd4e72de4729f502027f3d4283fe35a86f0ecd7592d13a5a938723f5ed/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f63616e64756363692f776561746865722e7376673f6c6162656c3d76657273696f6e)](https://packagist.org/packages/canducci/weather)

Instalação
----------

[](#instalação)

### Configurações

[](#configurações)

***Para aplicações Laravel, configure dessa maneira:***

Adicione em seu `composer.json` essa chave:

```
"canducci/weather": "0.1.*"
```

Agora execute esse comando no seu console:

```
$ composer update

```

Abra o arquivo `config/app.php` e adicione essa linha em suas configurações de `providers`:

```
Canducci\Weather\Providers\WeatherServiceProvider::class

```

Para funcionar o apelido (facade) adicione essa linha em suas configurações de `aliases`:

```
'Weather'   => Canducci\Weather\Facades\Weather::class

```

Pronto agora é só utilizar na sua aplicação `Laravel 5.*`.

\###Como utilizar no Laravel

\####Buscas de Cidades:

Utilizando a função `cities` para trazer as cidades mediante a informação pela sua descrição:

```
$items = cities('Sao Paulo');
return $items->getJson();
```

Nesse `return` de um anotação Javascript terá o seguinte resultado:

```
[
    {
        "Id": 244,
        "Name": "S\u00e3o Paulo",
        "Uf": "SP"
    },
    {
        "Id": 5019,
        "Name": "S\u00e3o Paulo das Miss\u00f5es",
        "Uf": "RS"
    },
    {
        "Id": 5020,
        "Name": "S\u00e3o Paulo de Oliven\u00e7a",
        "Uf": "AM"
    },
    {
        "Id": 5021,
        "Name": "S\u00e3o Paulo do Potengi",
        "Uf": "RN"
    }
]

```

Essas cidades encontradas tem um Id que é o responsável em buscar a previsão do tempo pelo outro função, ou seja, São Paulo tem o `Id = 244`, então:

```
$item = forecast(244);
return $item->getJson();
```

Ele retornar esse modelo na anotação Javascript:

```
{
    "Id": 244,
    "City": "S\u00e3o Paulo",
    "Uf": "SP",
    "Update": {
        "Short": "16\/11\/2015",
        "Date": {
            "date": "2015-11-16 23:00:41.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    },
    "Dates": [
        {
            "Date": {
                "Short": "17\/11\/2015",
                "Date": {
                    "date": "2015-11-17 23:00:41.000000",
                    "timezone_type": 3,
                    "timezone": "UTC"
                }
            },
            "Iuv": 13,
            "Min": 16,
            "Max": 26,
            "Time": {
                "Sigla": "ci",
                "Description": "Chuvas Isoladas"
            }
        },
        {
            "Date": {
                "Short": "18\/11\/2015",
                "Date": {
                    "date": "2015-11-18 23:00:42.000000",
                    "timezone_type": 3,
                    "timezone": "UTC"
                }
            },
            "Iuv": 13,
            "Min": 20,
            "Max": 29,
            "Time": {
                "Sigla": "pnt",
                "Description": "Pancadas de Chuva a Noite"
            }
        },
        {
            "Date": {
                "Short": "19\/11\/2015",
                "Date": {
                    "date": "2015-11-19 23:00:42.000000",
                    "timezone_type": 3,
                    "timezone": "UTC"
                }
            },
            "Iuv": 13,
            "Min": 20,
            "Max": 31,
            "Time": {
                "Sigla": "pt",
                "Description": "Pancadas de Chuva a Tarde"
            }
        },
        {
            "Date": {
                "Short": "20\/11\/2015",
                "Date": {
                    "date": "2015-11-20 23:00:42.000000",
                    "timezone_type": 3,
                    "timezone": "UTC"
                }
            },
            "Iuv": 13,
            "Min": 20,
            "Max": 30,
            "Time": {
                "Sigla": "pc",
                "Description": "Pancadas de Chuva"
            }
        }
    ]
}

```

Também pode utilizado via facade (apelidos) dessa forma:

***namespace:***

```
use Canducci\Weather\Facades\Weather;
use Canducci\Weather\ForecastDay;

```

***código:***

```
Weather::cities('Sao Paulo');
Weather::forecast(244); //4 datas de previsão (padrão)
Weather::forecast(244, ForecastDay::Day4); //4 datas de previsão
Weather::forecast(244, ForecastDay::Day7); //7 datas de previsão

```

A `Weather::cities('Sao Paulo')` retorna uma coleção de cidades com o seguinte layout:

***código:***

```
$items = Weather::cities('Sao Paulo');
foreach ($items as $key => $value)
{
    echo sprintf('%s %s %s',
            $value->getId(),
            $value->getName(),
            $value->getUf());
}
```

***resultado:***

```
244 São Paulo SP
5019 São Paulo das Missões RS
5020 São Paulo de Olivença AM
5021 São Paulo do Potengi RN

```

O `Weather::forecast(244, ForecastDay::Day4)` vai retornar a previsão do tempo conforme foi solicitado:

***código:***

```
$item = Weather::forecast(244, ForecastDay::Day4);

//Dados da cidades
echo sprintf('Id: %s Cidade: %s Uf: %s
              Data última atualização: %s',
            $item->getId(),
            $item->getCity(),
            $item->getUf(),
            $item->getUpdated()->format('d/m/Y'));

//Dados da previsões
foreach ($item->getDates() as $key => $value)
{
    echo sprintf('Data: %sIUV: %sMinima: %s
                  Maxima: %sStatus: %s - %s',
        $value->getDate()->format('d/m/Y'),
        $value->getIuv(),
        $value->getMin(),
        $value->getMax(),
        $value->getTime()->getSigla(),
        $value->getTime()->getDescription());
}
```

***resultado:***

\####Dados da cidades Id: 244

```
Cidade: São Paulo

Uf: SP

Data última atualização: 16/11/2015

```

\####Dados da previsões

```
Data: 17/11/2015

IUV: 13

Minima: 16

Maxima: 26

Status: ci - Chuvas Isoladas

Data: 18/11/2015

IUV: 13

Minima: 20

Maxima: 29

Status: pnt - Pancadas de Chuva a Noite

Data: 19/11/2015

IUV: 13

Minima: 20

Maxima: 31

Status: pt - Pancadas de Chuva a Tarde

Data: 20/11/2015

IUV: 13

Minima: 20

Maxima: 30

Status: pc - Pancadas de Chuva

```

\###Como utilizar sem Frameworks.

O pacote funciona normalmente fora do Laravel, ou seja, independente de frameworks. Para instalar crie um `composer.json` dessa forma:

```
{
    "require": {
        "canducci/weather":"0.1.*"
    }
}

```

Rode o procedimento de instalação `$ composer update` e após a instalação crie um arquivo `index.php` (ou qualquer de sua preferencia) e adicione o `autoload.php` da pasta `vendor` (`require 'vendor/autoload.php';`).

***Para usar faça:***

```
$weather = new Canducci\Weather\Weather(new Canducci\Weather\WeatherClient());

//busca de cidades
echo $weather->cities('Sao Paulo')->getJson();
//busca da previsão do tempo
echo $weather->forecast(244)->getJson();

```

***Código completo***

```
