Skip to content

Add weather information of your favorite city to your laravel application

License

Notifications You must be signed in to change notification settings

papamarfo/weatherman

Repository files navigation

Weatherman

Total Downloads

A laravel wrapper for OpenWeather "city only" api

Installation

You can install this package via composer using this command:

$ composer require manford/weatherman

The Manford\Weatherman\WeathermanServiceProvider is auto-discovered and registered by default.

If you want to register it yourself, add the ServiceProvider in config/app.php:

'providers' => [
    /*
     * Package Service Providers...
     */
    Manford\Weatherman\WeathermanServiceProvider::class,
]

The Weather facade is also auto-discovered.

If you want to add it manually, add the Facade in config/app.php:

'aliases' => [
    ...
    'Weather' => Manford\Weatherman\Facades\Weatherman::class,
]

You can publish the config file with:

php artisan vendor:publish --provider="Manford\Weatherman\WeathermanServiceProvider"

This is the contents of the published config file located in config/weatherman.php.

return [
    'base_url' => env('OPEN_WEATHER_URL'),

    'app_id' => env('OPEN_WEATHER_ID')
];

Add and update your .env file with these.

Visit OpenWeather to get your ID.

OPEN_WEATHER_URL=https://api.openweathermap.org/data/2.5/weather
OPEN_WEATHER_ID=

Usage

In your controller:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Manford\Weatherman\Facades\Weatherman as Weather;

class PageController extends Controller
{
    public function index()
    {
    	$city = Weather::city('accra');

    	return view('welcome', compact('city'));
    }
}

Include this view where you need it:

<div class="card-body">
    <h2>{{ $city->name }} Weather Status</h2>
    <div class="time">
        <div>{{ date("l g:i a", time()) }}</div>
        <div>{{ date("jS F, Y", time()) }}</div>
        <div>{{ ucwords($city->weather[0]->description) }}</div>
    </div>
    <div class="weather-forecast">
        <img src="http://openweathermap.org/img/w/{{ $city->weather[0]->icon }}.png"
            class="weather-icon" /> <?php echo $city->main->temp_max; ?>°C
        <span class="min-temperature">
            {{ $city->main->temp_min }}°C
        </span>
    </div>
    <div class="time">
        <div>Humidity: {{ $city->main->humidity }} %</div>
        <div>Wind: {{ $city->wind->speed }} km/h</div>
    </div>
</div>

Contributing

Please see contributing.md for details and a todolist.

Security

If you discover any security related issues, please email benjaminmanford@gmail.com instead of using the issue tracker.

Credits

License

MIT. Please see the license file for more information.

About

Add weather information of your favorite city to your laravel application

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages