简介
我们已经学习了通过 Laravel 构建架构良好的应用的各个方面,接下来,让我们再深入探讨一些细节。在本章,我们将讨论如何解耦各种处理器:队列处理器、事件处理器,甚至其他「类似事件」的结构,比如路由过滤器。
大部分的「处理器」可以被当作传输层组件。也就是说,它们通过队列处理器、被触发的事件、或者外部发来的请求等接收调用。这样一来,我们可以将这些处理器理解为控制器,同样需要避免在它们内部堆积太多具体的业务逻辑实现。
解耦处理器
首先,我们看一个例子。假设有一个队列处理器用来给用户发送手机短信。信息发送后,处理器会记录消息日志以便保存给用户发送过的所有消息历史。对应代码如下:
class SendSMS{ public function fire($job, $data) { $twilio = new Twilio_SMS($apiKey); $twilio->sendTextMessage(array( 'to'=> $data['user']['phone_number'], 'message'=> $data['message'], )); $user = User::find($data['user']['id']); $user->messages()->create(array( 'to'=> $data['user']['phone_number'], 'message'=> $data['message'], )); $job->delete(); }}