- What is mrzard/open-exchange-rates-service used for?
- It is a lightweight PHP client for the Open Exchange Rates API that provides an object-oriented way to fetch live and historical currency rates, convert amounts, and list supported currencies. It is framework-agnostic but includes a Laravel service provider and facade for integration. In Laravel apps it mainly acts as a thin adapter around the third-party API.
- How do I install mrzard/open-exchange-rates-service in Laravel?
- Install it with Composer using composer require mrzard/open-exchange-rates-service in a compatible Laravel project. The package supports Laravel auto-discovery, so the service provider and facade should be registered without manual edits on supported versions. Publish the configuration file if needed and set your Open Exchange Rates app ID and base currency.
- Which Laravel and PHP versions does mrzard/open-exchange-rates-service support?
- The package's last release was in December 2017, so it likely targets Laravel 5-era conventions and older PHP versions. The provided context does not list exact Composer constraints, so check composer.json and run a compatibility spike against your target Laravel and PHP versions. Do not assume it is a drop-in fit for a modern Laravel baseline.
- How do I configure the Open Exchange Rates app ID and base currency?
- Configuration is handled through the package config, with the app ID, base currency, and API endpoint configurable. In Laravel, publish the config file and keep the app ID in environment variables rather than source code. Verify how the package reads config and whether it supports the current OpenExchangeRates API contract before production use.
- Does mrzard/open-exchange-rates-service support Laravel auto-discovery and a facade?
- Yes, the package ships a Laravel service provider and facade, and the overview states it supports Laravel auto-discovery. That means it can integrate without manually registering the provider on compatible Laravel versions. Still validate service-provider boot behavior and facade aliases during your compatibility check.
- Can I fetch latest and historical exchange rates with this package?
- The package provides simple methods for retrieving latest and historical exchange rates from the Open Exchange Rates API. It also describes amount conversion between currencies and listing supported currencies. Confirm the exact method names and response shapes in the source, since documentation is limited and the package is legacy.
- Does mrzard/open-exchange-rates-service include caching and rate-limit handling?
- The overview mentions optional caching to help stay within request limits. It does not describe robust timeout, retry, request coalescing, or explicit rate-limit handling, so treat those as application responsibilities. For production, add your own cache layer, fallback behavior, and OXR quota monitoring.
- Is mrzard/open-exchange-rates-service production ready and maintained?
- The package has 1 star, 0 dependents, and its last release was December 2017, so community validation and maintenance are effectively absent. It may be feasible for a short spike or a legacy Laravel app, but production use carries high technical risk. Treat it as internally owned from day one and plan for dependency updates or replacement.
- How does mrzard/open-exchange-rates-service handle API errors and exceptions?
- The package advertises clear exceptions for failed or malformed responses. It does not indicate comprehensive handling for network timeouts, retries, schema changes, or quota exhaustion. Wrap calls behind your own interface and add alerting and user-facing fallbacks for OXR downtime and invalid API keys.
- What should I use instead of mrzard/open-exchange-rates-service?
- Prefer a small internal adapter built on Laravel's HTTP client and bound behind an ExchangeRateProvider interface. That keeps application code independent of this package and makes it easy to swap implementations if compatibility or maintenance issues appear. If you trial this package, isolate it in a branch and add contract tests before deciding to adopt, vendor, or replace it.