如何使用DRY主体来组织和使用一些可在Laravel框架中互换的类?

时间:2014-02-28 00:53:02

标签: php laravel repository dry

对于模糊的标题,我们深表歉意。我们假设我提供的服务需要在发生与新博客帖子相关的事件时向用户发送通知。他们可以有三种选择:短信,自动语音呼叫或电子邮件。当他们发表新帖子时,MySQL行将指出他们选择的三种类型中的哪一种。

每个选项都需要触发不同的事件。例如,对于电子邮件,我需要使用连接到Mailchimp API的EmailRepository,以便在其帖子发布,编辑或评论时发送电子邮件。如果发送短信,我需要使用在发生相同事件时使用Twilio的SmsRepository,并使用与语音呼叫相同的想法。因此,作用于这些的控制器需要选择正确的路径。

我不确定如何实现这个:我应该为每个存储库重用的内容(因为许多函数可以是相同的,比如send(),但是每个API的工作方式都大不相同),无论我是否应该使用所有这些的单个接口,是否使用单个类,同时根据所选的通知类型注入不同的依赖关系等。是否存在如何设置这样的东西的例子?

1 个答案:

答案 0 :(得分:0)

听起来像战略模式的工作:

就个人而言,id创建一个类来处理通知调用,然后只是将('notification-content','delivery of delivery')从控制器传递到通知类,通知类应实现将内容封装到通知通道的策略模式