Laravel EnsoLaravel Enso
Guide
Back End
Front End
GitHub
Guide
Back End
Front End
GitHub
  • Back End

    • Action Logger
    • Addresses
    • Algolia
    • Algolia Webshop
    • API
    • Audits
    • Avatars
    • Cache Chain
    • Calendar
    • Cargo Partner
    • Categories
    • Charts
    • CI/CD
    • Cli
    • CNP Validator
    • Comments
    • Commercial
    • Companies
    • Core
    • Countries
    • Currencies
    • Data Export
    • Data Import
    • Discounts
    • Documents
    • Dynamic Methods
    • EAV
    • Emag
    • Emag Checker
    • Enums
    • Excel
    • Facebook
    • Files
    • Filters
    • Financials
    • Forms
    • Frisbo
    • Google
    • Helpers
    • Holidays
    • How-to
    • Image Transformer
    • Impersonate
    • Interactions
    • Inventory
    • IO
    • Localisation
    • Lockable Models
    • Logs
    • Measurement Units
    • Meili Search
    • Meili Search Webshop
    • Menus
    • Migrator
    • Monitored Emails
    • Notifications
    • Packaging Units
    • PDF
    • People
    • Permissions
    • Product Eav
    • Product Lots
    • Products
    • projects
    • Questionnaires
    • Rememberable
    • Roles
    • Sale Channels
    • Searchable
    • Select
    • Sentry
    • Services
    • Smart Bill
    • Sms Advert
    • Stripe
    • Sunrise Sunset
    • Tables
    • Tasks
    • Teams
    • Ticketing
    • Track Who
    • Tutorials
    • Typesense
    • Typesense Webshop
    • Unit Conversion
    • Upgrade
    • UPS
    • User Groups
    • Users
    • Versions
    • Virtual Call Center
    • Vouchers
    • Webshop
    • Webshop Commercial

Sunrise Sunset

LicenseStableDownloadsPHPIssuesMerge Requests

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.io JSON endpoint through laravel-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_start
  • date_end
  • lat
  • lng

The latitude and longitude values are resolved from:

  • config('enso.sunriseSunset.latitude')
  • config('enso.sunriseSunset.longitude')

API

HTTP route

  • GET api/sunriseSunset named sunriseSunset.index

The route is loaded inside the Enso middleware stack:

  • api
  • auth
  • core

Internal classes

  • LaravelEnso\SunriseSunset\Actions\Get
  • LaravelEnso\SunriseSunset\Endpoints\Get
  • LaravelEnso\SunriseSunset\Http\Controllers\Index

Depends On

Required Enso package:

  • laravel-enso/api ↗

Related Enso packages:

  • laravel-enso/core ↗
  • laravel-enso/migrator ↗

External service dependency:

  • sunrisesunset.io ↗

Contributions

are welcome. Pull requests are great, but issues are good too.

Thank you to all the people who already contributed to Enso!

Edit this page on GitHub
Last Updated: 5/6/2026, 5:21:18 PM
Prev
Stripe
Next
Tables