Handling Deprecated Methods in Third-Party PHP Libraries: My PayPal Integration Journey
Fermin Perdomo
April 7, 2025

I was working on a PayPal integration when I ran into an issue caused by a deprecated method in a third-party library.
Big thanks to Elminson De Oleo Baez from the PHP Dominicana community for writing the article Trait and Classes Hacking: Customizing Package Libraries with PHP Traits and Classes. It gave me a solid idea of how to move forward.
However, I hit another roadblock: the package used a trait within a trait, which made it tricky to override the deprecated method. So, I decided to take a different route—I created my client version of the third-party library and built a custom trait that replaced the deprecated functions.
So I started creating my Paypal service:
Then I have to move all the methods that need to be overwrite to my custom service class:
To view the complete version of this class, you can refer to the PayPalService gist. To explore the other custom traits, check the full gist here..
However, I hit another roadblock: the package used a trait within a trait, which made it tricky to override the deprecated method. So, I decided to take a different route—I created my client version of the third-party library and built a custom trait that replaced the deprecated functions.
So I started creating my Paypal service:
Then I have to move all the methods that need to be overwrite to my custom service class:
To view the complete version of this class, you can refer to the PayPalService gist. To explore the other custom traits, check the full gist here..
Please login to leave a comment.