canducci / weather
Canducci Weather
Requires
- php: >=5.3.0
- laravel/framework: 5.1.*|5.0.*
Requires (Dev)
- phpspec/phpspec: ~2.1
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-11-29 05:09:03 UTC
README
Previsão do Tempo
Instalação
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('<p>%s %s %s</p>', $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('<p>Id: %s</p><p> Cidade: %s</p><p> Uf: %s</p> <p>Data última atualização: %s</p>', $item->getId(), $item->getCity(), $item->getUf(), $item->getUpdated()->format('d/m/Y')); //Dados da previsões foreach ($item->getDates() as $key => $value) { echo sprintf('<p>Data: %s</p><p>IUV: %s</p><p>Minima: %s</p> <p>Maxima: %s</p><p>Status: %s - %s</p>', $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
<?php require 'vendor/autoload.php'; $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();