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

Swap Laravel Package

florianv/swap

Retrieve live currency exchange rates from multiple providers (Fixer, currencylayer, exchangeratesapi, etc.) with optional caching and fallbacks. PSR-friendly and integrates with MoneyPHP; also available via Symfony bundle and Laravel package.

View on GitHub
Deep Wiki
Context7
4.5.0

What's Changed

Breaking Changes

  • Minimum PHP version raised to 8.2 (was 7.4/8.0)
  • Minimum PHPUnit version raised to 11.0 (was 9.x/10.x)

Improvements

  • Added suggest section to composer.json for PSR-18 client and PSR-17 factory implementations, guiding users toward compatible HTTP dependencies
  • Improved discovery test — Now verifies discovery works end-to-end by creating a service via Factory

Infrastructure & Tooling

  • Modernized CI pipeline — Replaced Travis CI with GitHub Actions; test matrix 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
  • Migrated all tests to PHPUnit 11 attributes — Replaced [@test](https://github.com/test) and [@dataProvider](https://github.com/dataProvider) annotations
  • Added composer scriptstest, psalm, cs:fix, cs:check
  • Removed legacy CI configs.scrutinizer.yml, .styleci.yml, .travis.yml
  • Updated README badges — Travis badge replaced with GitHub Actions Tests and Psalm badges

Full Changelog: https://github.com/florianv/swap/compare/4.4.0...4.5.0

4.4.0

Bug Fixes

  • PHP 8.4 compatibility: Use explicit nullable types (?Type) instead of implicit nullable parameters, fixing deprecation notices on PHP 8.4 (Swap.php, Factory.php) #144, #147
  • Replace deprecated HttpClientDiscovery: Use Psr18ClientDiscovery instead of the deprecated HttpClientDiscovery in Factory.php #142

Maintenance

  • New runtime dependencies: Added symfony/http-client and php-http/message-factory to require
  • New suggestion: php-http/discovery added to suggest for auto-discovery of HttpClient
  • Documentation: Multiple README and docs updates

Full Changelog: https://github.com/florianv/swap/compare/4.3.0...4.4.0

4.3.0
  • PHP 8 and PHPUnit 9 support
4.2.0

xChangeApi.com support

4.1.0

Added way to add services by instance

4.0.1

Making Swap not final to allow mocking

4.0.0

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

3.5.0
  • Added CurrencyConverterApi service
3.4.0
  • Fixed Fixer service which now requires an access_key
3.3.0
  • Added Forge service
  • Added CurrencyDataFeed service
  • Supported historical rates in National Bank Of Romania
v2.6.1

Fixed now invalid Google service url

3.2.0

Support crypto currencies via Cryptonator

3.1.0

New Russian Central Bank service

3.0.2

Update exchanger to include this bug fix https://github.com/florianv/exchanger/pull/5

v3.0.1

Update Exchanger to version 0.2.0

v3.0.0

New major version including:

v2.6.0
v2.5.0
v2.4.1
v2.4.0
v2.3.1
v2.3.0

http-adapter 1.0

v2.2.0
v2.1.0

Implemented Illuminate cache

v2.0.1

Fixed the way to retrieve body content

v2.0.0
v1.3.0
  • Added a factory method CurrencyPair::createFromString
  • Simplified the retrieval of a rate
v1.2.0
  • Added an adapter layer to support different HTTP clients
  • Moved all tests to PHPUnit
v1.1.0
v1.0.1
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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport