Replies: 3 comments 2 replies
-
Some feedback from @rimas-kudelis on #975 about the BC breaks:
|
Beta Was this translation helpful? Give feedback.
-
Some more feedback from myself:
|
Beta Was this translation helpful? Give feedback.
-
One more thing that would be great to consider is developer documentation on writing a gateway properly. The existing docs on developing a gateway are very short and don't delve deep into the logic of Payum, which means it's not easy to get this right and makes the initial learning curve rather steep. When I was writing adeoweb/sylius-everypay-plugin (Sylius payment plugin and a Payum gateway), I ended up enlisting @Prometee for help on making it at least somewhat proper code-wise, because my initial attempt turned out to be simply not correct from an architectural standpoint (although I think it worked). A step-by-step guide built on an existing typical gateway (or a couple different typical gateways – e.g. one where you simply redirect the user and then process the response, and the other where you also present them with payment choices and whatnot first) would be great. BTW we actually attempted to collaborate on revamping the docs, but never finished this, so there's not much to show yet... :( |
Beta Was this translation helpful? Give feedback.
-
Work on Payum 2.0 is going strong, and there are a few open discussion points that I would like to address here.
Firstly, here is a high-level roadmap of what can be expected in Payum 2.0:
Roadmap
GetCurrencyAction
can be deprecated as it does not serve a real purpose. Just useCurrency::createFrom...
) instead)Breaking changes
One thing that I'm considering is to have zero breaking changes in version 2.0.
The reason for this is because there are hundreds of custom payment gateways built on Payum, and I want those to continue working with 2.0 so that there are no changes needed to continue using them. Especially for some applications that offer integration with a lot of different gateways, they will lose those integration if we don't continue to support the old API.
Some of the external payment gateways might not be maintained and be able to upgrade to Payum 2.0, but they might still work perfectly fine (and not need any additional maintenance).
For this reason, I'm thinking of keeping BC 100% between version 1 and 2, and adding deprecations somewhere in version 2 (which can then be removed in version 3).
Gateways in core
Payum core offers a few built-in gateways as part of the monorepo.
I think these should be moved out to separate packages away from the monorepo, and managed as independent packages and integrations (which can still be maintained by the Payum core team for the foreseeable future). Then the focus on the Payum repository can be on the Core functionality only.
Timeline
There is no definitive timeline on when Payum 2 will be released, as there are a lot of work involved in getting everything ready. I encourage the community to help contribute some of these changes to get to the endpoint quicker and have Payum 2 ready as soon as possible.
Beta Was this translation helpful? Give feedback.
All reactions