Server-side Message Queue/Output
XHTML
Load Messages Via XML
Load Messages Via JSON
-
Testing
-
Something bad happened
/**
* A drastically simplified Message object in order to keep the example readable
*/
class Message {
public $content;
public $type;
public function __construct($content = '', $type = 'message') {
$this->content = $content;
$this->type = $type;
}
}
class Messenger {
// The $message_queue holds all types of messages in order to
// return all of them at once if and when requested
protected $message_queue;
/**
* Returns the entire queue
*/
public function getQueue() {
return $this->message_queue;
}
/**
* Add a message to the specified queue
*/
public function add($message, $type) {
$this->message_queue[] = new Message($message, $type);
}
/**
* Creates the initial queue array
*/
public function __construct() {
$this->message_queue = array();
}
}
/*****XHTML*****/
<ul class="messages">
<?php foreach ($messages as $message) { ?>
<li class="<?php echo htmlentities($message->type); ?>">
<?php echo htmlentities($message->content); ?>
</li>
<?php } ?>
</ul>
/*****JSON*****/
<?php $last = count($messages) - 1; ?>
{
"messages" : [
<?php foreach ($messages as $i => $message) { ?>
{
"content" : "<?php echo str_replace('"', '\\"', $message->content); ?>",
"type" : "<?php echo str_replace('"', '\\"', $message->type); ?>"
}
<?php
if ($i != $last) print ',';
} ?>
]
}
/*****XML*****/
<messages>
<?php foreach ($messages as $message) { ?>
<message type="<?php echo htmlentities($message->type); ?>">
<?php echo htmlentities($message->content); ?>
</message>
<?php } ?>
</messages>