Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Exchanger Laravel Package

florianv/exchanger

PHP exchange rate provider layer exposing 30+ services (fastFOREX, ECB, national banks) through one ExchangeRateService interface, with chain fallback, PSR-16 caching and historical rates. Maintained since 2016; requires PHP 8.2+.

View on GitHub
Deep Wiki
Context7
2.10.1

What's Changed

Full Changelog: https://github.com/florianv/exchanger/compare/2.10.0...2.10.1

2.10.0

What's Changed

New services

  • UniRateAPI, supporting latest and historical rates.
  • National Bank of Denmark, supporting current and historical rates (five business day history feed), and the statbank.dk for older dates.

Improvements

  • HttpService now accepts an optional StreamFactoryInterface and exposes a postRequest() helper, enabling services that POST request bodies.
  • fastFOREX has marked as a recommended service.

Maintenance

  • Psalm reconfigured to level 3, with baseline cleanup.
  • Coding style migrated to PER3 / PHP82Migration via php-cs-fixer.
  • Added #[\Override] attributes and missing [@api](https://github.com/api) annotations.
  • Dropped the symfony/http-client dependency auto-added by php-http/discovery.
  • Allowed symfony/http-client ^7.0 for PHP 8.2 / 8.3 CI.
  • Composer normalized, README provider count expressed as 30+.

Full Changelog: https://github.com/florianv/exchanger/compare/2.9.1...2.10.0

2.9.1
  • Updates to fastFOREX integration
2.9.0

Breaking Changes

  • Minimum PHP version raised to 8.2 (was 7.4/8.0). PHP 8.1 is EOL
  • Minimum PHPUnit version raised to 11.0 (was 9.x/10.x)
  • Replaced HttpClientDiscovery with Psr18ClientDiscovery in HttpService.php — if you extend HttpService or rely on php-http/discovery directly (as a shadow dependency), ensure your HTTP client is discoverable via PSR-18

Bug Fixes

  • Fixed National Bank of Romania (BNR) endpoints — Updated API URLs from www.bnr.ro to the official curs.bnr.ro subdomain per BNR documentation. The old endpoints may have stopped working or could stop at any time. (#169)

Infrastructure & Tooling

  • Modernized CI pipeline — Replaced Travis CI with GitHub Actions; test matrix now covers PHP 8.2, 8.3, 8.4, and 8.5
  • Added Psalm static analysis (level 1) with dedicated CI workflow and baseline
  • Added backward compatibility check workflow (bc-check.yml)
  • Migrated all tests to PHPUnit 11 attributes — Replaced [@test](https://github.com/test) and [@dataProvider](https://github.com/dataProvider) annotations; data provider methods are now public static
  • Added composer scripts — test, psalm, cs:fix, cs:check
  • Removed legacy CI configs — .scrutinizer.yml, .styleci.yml, .travis.yml
  • Removed unused dependencies — symfony/http-client, php-http/message-factory
  • Updated README badges — Travis badge replaced with GitHub Actions Tests and Psalm badges

Full Changelog: https://github.com/florianv/exchanger/compare/2.8.3...2.9.0

2.8.3

What's Changed

Fixes

Maintenance

Full Changelog: https://github.com/florianv/exchanger/compare/2.8.2...2.8.3

2.8.2
2.8.1
2.8.0
  • National Bank of Georgia service
  • ApiLayer fixes
2.7.2
  • abstract api historical updates
  • smaller code fixes
2.7.1
  • abstractapi updates
2.7.0

Fixes for Exchangeratesapi

2.6.3
  • AbstractApi service
  • Fixed breaking config change from exchangeratesapi
  • Removed cryptonator supported list of codes
2.6.2
  • Exchanges Rate API fix
2.6.1

Normalize TCMB rates

2.6.0
  • PHP 8.0 support
  • 1Forge url updates
1.4.3

1Forge url updates

2.5.3
  • Added Xchangeapi.com service
  • Fixed issue with BNR
2.5.2

Updated 1Forge service

2.5.1

Fixed http(s) issue with the central_bank_of_republic_turkey service

2.5.0

Fully support generators for Chain

2.4.1

Fix to be compatible with laravel 5.8

1.4.2

Updated 1Forge urls

2.4.0

Added coinlayer service

2.3.1

Improved ECB historical rates

2.3.0
  • Implemented Bulgarian National Bank
  • Url fix for 1Forge
2.2.2

Fixed issue with invalid cached values

1.4.1

Updates due to Google response format changes

2.2.1

Switched to HTTPS for National Bank of Romania

2.2.0

Added ExchangeRatesApi service (https://exchangeratesapi.io)

2.1.1

Central bank of czech republic url fix

2.1.0
  • Currency converter requires an api key
1.4.0
  • Currency converter requires an api key
2.0.0

See CHANGELOG to get more informations about the changes in this new version

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel