- Can I install locaine/lcn-weather-forecast-bundle in a Laravel app with Composer?
- No. It is a Symfony 2 bundle rather than a Laravel package: it registers through a bundle class, a dependency-injection extension, and YAML or XML service definitions, none of which Laravel's service container boots. Requiring it via Composer gives you no service provider and no Blade helpers, and its symfony/* constraints will conflict with the Symfony components Laravel pins.
- Does this package support Laravel 10 or Laravel 11?
- It does not support any Laravel version. The bundle targets Symfony 2.x and PHP 5.3 through 7.x, while Laravel 10 and 11 require PHP 8.1 or newer, so the code will not load on a supported runtime. There is no bundle-registration path in Laravel and no published maintenance to add one.
- Is the Forecast.io API still available for this bundle?
- No. Forecast.io became Dark Sky, Apple acquired it, and the API was shut down in March 2023, so new API keys cannot be issued. The endpoints hard-coded in this bundle are retired, meaning it cannot fetch a forecast even if the PHP side ran. Any integration must move to a live provider such as Open-Meteo, Visual Crossing, or OpenWeatherMap.
- What is the best alternative to LcnWeatherForecastBundle for Laravel?
- Re-implement the two useful patterns natively: a WeatherProvider interface with one adapter per provider, a ForecastData DTO plus a normalizer, and a cache decorator backed by Cache::remember(). Open-Meteo is the easiest starting point because it is keyless with generous limits, while Visual Crossing and OpenWeatherMap offer contractable SLAs. Avoid vendoring the bundle; a Laravel-native replacement is roughly a sprint of work.
- How do I display a multi-day weather forecast in Blade?
- Not with this bundle, since it ships Symfony and Twig integration rather than Blade helpers. Build a small service that returns a ForecastData DTO, pass it to a Blade view, and loop over the daily entries with @foreach. Cache the provider response for 10 to 15 minutes for current conditions and 1 to 3 hours for daily data so page renders do not hit the upstream API.
- How should I cache weather forecast API responses in Laravel?
- Wrap your provider in a decorator that implements the same interface and calls Cache::remember() with a provider-aware TTL. Use short TTLs for current conditions (10 to 15 minutes) and longer ones for daily outlooks (1 to 3 hours), and round latitude and longitude to about three decimals to raise the cache hit rate. For high-traffic locations, add a queued pre-warm job so users rarely wait on a cold cache.
- Can I test this package in a Laravel test suite?
- Practically no. The bundle has zero stars, zero dependents, and no test suite or maintenance activity, and it cannot boot inside a Laravel test application. Instead, write contract tests per adapter against your own WeatherProvider interface and fake the HTTP client so tests never call a live weather API. Time-travel helpers let you assert that TTL behaviour and forecast horizons are handled correctly.
- Is locaine/lcn-weather-forecast-bundle maintained and safe for production?
- No. There is no visible maintenance, no PHP 8 compatibility work, and no security response path, so there are no patches for vulnerabilities or upstream changes. Absolute supply-chain risk is small because the codebase is tiny, but integration risk is total: the package cannot execute its primary function today. Do not ship it to production.
- What PHP versions does this weather bundle require?
- It was written for the Symfony 2 era, targeting PHP 5.3 through 7.x, and it uses service definitions and event dispatch patterns from that period. Modern Laravel requires PHP 8.1 or newer, so the code will not load on a supported runtime. Its composer.json constraints on symfony/* will also conflict with the component versions Laravel pins.
- Why does the description promise API request normalization and caching if the package is unusable?
- Those features are the genuinely reusable part: a normalizer that converts a vendor payload into your own DTO, and a cache decorator around an HTTP client. Both are provider-agnostic patterns worth about 150 lines of Laravel code, which is why re-implementing them is cheaper than adapting the bundle. The rest of the package, including bundle registration, the DI extension, and the Forecast.io endpoints, is specific to a framework and an API that no longer exist.