1: <?php
2:
3: /*
4: * This file is part of SwiftMailer.
5: * (c) 2011 Fabien Potencier
6: *
7: * For the full copyright and license information, please view the LICENSE
8: * file that was distributed with this source code.
9: */
10:
11: /**
12: * Stores all sent emails for further usage.
13: * @package Swift
14: * @subpackage Plugins
15: * @author Fabien Potencier
16: */
17: class Swift_Plugins_MessageLogger implements Swift_Events_SendListener
18: {
19: /**
20: * @var array
21: */
22: private $messages;
23:
24: public function __construct()
25: {
26: $this->messages = array();
27: }
28:
29: /**
30: * Get the message list
31: *
32: * @return array
33: */
34: public function getMessages()
35: {
36: return $this->messages;
37: }
38:
39: /**
40: * Get the message count
41: *
42: * @return int count
43: */
44: public function countMessages()
45: {
46: return count($this->messages);
47: }
48:
49: /**
50: * Empty the message list
51: *
52: */
53: public function clear()
54: {
55: $this->messages = array();
56: }
57:
58: /**
59: * Invoked immediately before the Message is sent.
60: *
61: * @param Swift_Events_SendEvent $evt
62: */
63: public function beforeSendPerformed(Swift_Events_SendEvent $evt)
64: {
65: $this->messages[] = clone $evt->getMessage();
66: }
67:
68: /**
69: * Invoked immediately after the Message is sent.
70: *
71: * @param Swift_Events_SendEvent $evt
72: */
73: public function sendPerformed(Swift_Events_SendEvent $evt)
74: {
75: }
76: }
77: