PHP Unified SDK v8.0.0
We were releasing our next major version of the PHP SDK - version 8.0.0. The full release can be found here
Note: Version 8.x of the SDK has aspects that are not backward compatible with 7.x. We are detailing the differences in our documentation.
Important
Only actively supported versions of PHP will be supported starting with this version. See Supported Versions on PHP.net for more information.
Highlights
Client Class Breakdown
The Client class was very large, at over 2,000 lines. To make this easier to work on and more testable, we have:
- Implemented a facade for the client
- Created a class to handle generic REST GET, PUT, POST, and DELETE
- Created separate classes for each resource, providing a better representation of the API
- Add unit and integration tests for new client classes
Implement POS Facade
Prior to version 8.0.0, we had two separate SDKs, the "Light" SDK, which could only use the POS facade, and the "Full" SDK, which used the merchant and payout facades. This created the need for additional effort both in maintaining and implementing the SDK.
As of version 8.0.0, the SDK supports both methods. You can use just the POS facade, which is limited in feature set but does not require signed requests (no private key to manage) or with the merchant/payout facade, which has more functionality but is more complex to implement.
This provides an easier upgrade path and reduces the duplicate work of maintaining two separate SDKs regarding dependency upgrades, bug fixes, etc.
Standardization
We've implemented PSR-12 across the entire SDK and are using PHPCS to check every commit.
Functional Test Suite
A functional test suite has been added to the codebase that will run against the test API. Due to there being so many outside variables from external resources, this does not run in the GitHub Actions pipeline.
Other Notes
- Overall improvements to approach
- Added Composer setup script for simpler token creation
- Removed phpcs exceptions
- Added strict types & copyright
- Added generated PHPDoc
Bug Fixes
- Fixed an issue when getting Ledgers