Progress Bar??
Posted: Mon Mar 30, 2009 5:39 am
Is there any method to display any kind of progessbar???
A community of PHP developers offering assistance, advice, discussion, and friendship.
http://forums.devnetwork.net/
Code: Select all
class ProgressTrackerPlugin implements Swift_Events_SendListener {
private $_outputFile;
private $_targetMessage;
private $_targetAddresses;
private $_processedAddresses;
public function __construct($outputFile) {
$this->_outputFile = $outputFile;
}
public function trackMessageProgress($message) {
$this->_targetMessage = $message;
$this->_targetAddresses = $message->getTo();
$this->_processedAddresses = array();
}
public function beforeSendPeformed(Swift_Events_SendEvent $evt) {
//Not used here
}
public function sendPerformed(Swift_Events_SendEvent $evt) {
//Don't deal with any other message
if ($evt->getMessage() !== $this->_targetMessage) {
return;
}
$to = $message->getTo();
foreach ($to as $address => $name) {
if (array_key_exists($address, $this->_targetAddresses)) {
//Quick sanity check to make sure we don't store the same address twice
// Use address key as a unique constraint
$this->_processedAddresses[$address] = $address;
}
}
$results = array(
'totalRequired' => count($this->_targetAddresses),
'totalSent' => count($this->_processedAddresses)
);
//Write JSON to the output file
file_put_contents($this->_outputFile, json_encode($results));
}
}Code: Select all
<?php
$mailer = new Swift_Mailer( ... );
$tracker = new ProgressTrackerPlugin('/some/output/file.json');
$mailer->registerPlugin($tracker);
$message = Swift_Message::newInstance( ... );
/*
Add recipients etc etc
*/
$tracker->trackMessageProgress($message);
$mailer->batchSend($message);