Files
faveo/vendor/itsgoingd/clockwork/Clockwork/DataSource/SwiftDataSource.php
2023-06-08 18:56:00 +05:30

46 lines
1.0 KiB
PHP

<?php namespace Clockwork\DataSource;
use Clockwork\Request\Request;
use Clockwork\Request\Timeline\Timeline;
use Clockwork\Support\Swift\SwiftPluginClockworkTimeline;
use Swift_Mailer;
// Data source for Swift mailer, provides sent emails
class SwiftDataSource extends DataSource
{
// Swift instance
protected $swift;
// Clockwork timeline instance
protected $timeline;
// Create a new data source, takes a Swift instance as an argument
public function __construct(Swift_Mailer $swift)
{
$this->swift = $swift;
$this->timeline = new Timeline;
}
// Listen to the email events
public function listenToEvents()
{
$this->swift->registerPlugin(new SwiftPluginClockworkTimeline($this->timeline));
}
// Adds send emails to the request
public function resolve(Request $request)
{
$request->emailsData = array_merge($request->emailsData, $this->timeline->finalize());
return $request;
}
// Reset the data source to an empty state, clearing any collected data
public function reset()
{
$this->timeline = new Timeline;
}
}