Architecture concepts
It's all about adapting.
Nanasi Sms uses adapter pattern. This pattern is so useful in mediating API incompatibilities.
The JasiriLabs\NanasiSms\NanasiSmsOperator
interface defines the contract that shows how you can interact with Nanasi Sms.
The JasiriLabs\NanasiSms\NanasiSms
(the main Nanasi Sms operator implementation) uses adapters to do the real work. Every adapter is an implementation of the JasiriLabs\NanasiSMS\NanasiSmsAdapter
interface.All adapters conform to the same specifications.
In visual appearance, it's like:
Your code is not directly coupled to the adapter. So you can use any adapter you want at any time. 😉