为了账号安全,请及时绑定邮箱和手机立即绑定

在php项目中 各位兄台是怎么优雅的调用工具类库的呢?

在php项目中 各位兄台是怎么优雅的调用工具类库的呢?

临摹微笑 2019-04-14 09:53:16
最近一直在纠结项目分层架构的问题其中最纠结的就是在项目中如何引入第三方类库比如说有个msg控制器要发送邮件classMsgConstrollerextendsConstroller{publicfunctionsend(){$email=newemail([options....]);$email->send();}}这个控制器通过引入一个email工具类实现了发送email的功能但是如果同时要发送短信呢classMsgConstrollerextendsConstroller{publicfunctionsend(){$email=newemail([options....]);$sms=newsms([options....]);$email->send();$sms->send();}}这样感觉很不优雅所以我想到了使用个服务层来解决classMsgConstrollerextendsConstroller{publicfunctionsend(){$msg=service('Msg');//实例化一个Msg服务类$msg->send('message,email,sms');//通过send接口传的参数会同时发送站内信、邮件、短信}}但是这样又会把new操作给转移到服务层感觉还不是怎么理想那么大家有什么比较简单优雅的解决方案吗?
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

sms和email等同时实现send()方法接口,再用Composite设计模式组合起来怎样?
classMsgConstrollerextendsConstroller{
publicfunctionsend(){
$msg=newMsgComposite();
$msg->add(newemail());
$msg->add(newsms());
$msg->send();
}
}
new操作现在框架好像都喜欢用统一的ServiceLocator解决,方便统一替换利于单元测试
                            
查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 325 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信