Weave Code
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

Exchange rate provider layer for PHP: 30+ rate services behind one ExchangeRateService interface. Supports historical rates, chain fallback between providers, and PSR-16 caching. Use when you need more control than higher-level libraries.

View on GitHub
Deep Wiki
Context7
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 scriptstest, psalm, cs:fix, cs:check
  • Removed legacy CI configs.scrutinizer.yml, .styleci.yml, .travis.yml
  • Removed unused dependenciessymfony/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.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
ecotone/kafka
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata