laravel-enso / sunrise-sunset
Sunrise and sunset API integration for Laravel Enso
Requires
- php: ^8.2
- laravel-enso/api: ^1.14
- laravel/framework: ^10.0|^11.0|^12.0
README
Description
Sunrise Sunset integrates the sunrisesunset.io service into Laravel Enso.
The package wraps the external API behind an Enso Action, logs outbound calls through laravel-enso/api, exposes a protected application route, and stores the Enso structure required for access control.
It is intended for applications that need sunrise and sunset times for a configured location without implementing the remote call flow manually.
Installation
Install the package:
composer require laravel-enso/sunrise-sunset
Run the package migration:
php artisan migrate
Optional publish:
php artisan vendor:publish --tag=sunrise-sunset-config
Configure the target coordinates:
// config/enso/sunriseSunset.php return [ 'latitude' => env('SUNRISE_SUNSET_LATITUDE'), 'longitude' => env('SUNRISE_SUNSET_LONGITUDE'), ];
Features
- wraps the
sunrisesunset.ioJSON endpoint throughlaravel-enso/api - exposes an Enso route for authenticated callers
- logs outbound requests and responses through the API package
- registers a package permission for route-level access control
- keeps latitude and longitude configurable through Enso config
Usage
The package exposes an internal action that can be called directly:
use Carbon\Carbon; use LaravelEnso\SunriseSunset\Actions\Get; $response = (new Get( Carbon::parse('2026-05-01'), Carbon::parse('2026-05-07'), ))->handle(); $payload = $response->json();
The endpoint sends these query parameters to the upstream API:
date_startdate_endlatlng
The latitude and longitude values are resolved from:
config('enso.sunriseSunset.latitude')config('enso.sunriseSunset.longitude')
API
HTTP route
GET api/sunriseSunsetnamedsunriseSunset.index
The route is loaded inside the Enso middleware stack:
apiauthcore
Internal classes
LaravelEnso\SunriseSunset\Actions\GetLaravelEnso\SunriseSunset\Endpoints\GetLaravelEnso\SunriseSunset\Http\Controllers\Index
Depends On
Required Enso package:
Related Enso packages:
External service dependency:
Contributions
are welcome. Pull requests are great, but issues are good too.
Thank you to all the people who already contributed to Enso!