【发布时间】:2016-03-15 14:25:31
【问题描述】:
我正在构建一个具有 3 rd 方 api 集成的 Web 应用程序,其中包括
- 支付网关
- 短信供应商
- 像 mandrill 这样的电子邮件提供商
现在我可以拥有与我的数据库对话的函数所在的具体存储库类。据我所知,存储库是用于与数据库对话的标准做法。现在我在哪里构建调用 3rd 方 API 的逻辑?这就是服务提供商的意思吗?如果那么有人可以向我展示整个流程如何运作的非常基本的示例吗?例如,通过调用服务提供商从控制器发送短信。这个问题可能看起来很垃圾,但我无法获得任何示例或在线搜索它。没有现实世界的例子可以看到。
如果有人做过同样的事情,请提供一些参考或示例。
TIA!
【问题讨论】:
-
有几个关于laravel repository pattern的教程。他们中的大多数建议在某些命名空间中使用 自定义 php 代码 和接口类。需要注意的是,laravel 有 mandrill support。附言。 laravel sms 上的第一个谷歌结果,我也在 packagist 上找到。如果你坚持要问别人,那就再深入一点。
-
嗨@Tezla,教程仅限于访问网络应用程序本身内部的数据库和数据。没有提到如何构建外部 API。 Codeigniter 有库,我们可以在其中进行所有外部 api 集成。但是在 larave 中,这是标准的做法吗?教程中没有这些
-
因为 我将存储库模式视为一组命名空间,其中包含可以做任何事情的协定(接口类) - 是的,任何事情,示例可能是一些数据库访问,但没有什么能阻止你因为做别的事情。编程毕竟是关于创造力的。此外,尝试使用 packagegist url,您可能会找到所需的包。我希望没有人开始 CI-Laravel 圣战。
-
@Tezla 是的,但最好坚持标准做法。如果您对此有任何示例方法,可以将其写下来作为答案吗?
-
laravel.io/forum/… 解释了如何在控制器中暴露 guzzle,并提供了一些建议以了解 Laravel 如何在内部为 Mandril 和 Mailgun 使用 guzzle。将每个代码放在一个服务类中,或者通过存储库模式更容易地分离外部 api 逻辑和邮件/支付网关
标签: php api laravel laravel-5 repository-pattern