jjok/flasher

一个简单的消息队列。

1.1.0 2014-07-02 16:06 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:09:09 UTC


README

Latest Stable Version Build Status

一个简单的消息队列。

示例

使用 jjok\Flasher\Flasher 实现简单的消息队列。

use jjok\Flasher\Flasher;
use jjok\Flasher\Messages\Message;

// Create a new queue
$message_queue = new Flasher();

// Add some messages
$message_queue->enqueue(new Message('This is a message.'));
$message_queue->enqueue(new Message('This is a second message.'));

// Print out each message. (Messages remain queued)
foreach($message_queue as $message) {
	echo $message;
}

// "This is a message."
// "This is a second message."

或者

// Dequeue each message. (Empties the queue)
while(!$message_queue->isEmpty()) {
	echo $message_queue->dequeue();
}

// "This is a message."
// "This is a second message."

使用 jjok\Flasher\SessionFlasher 自动将队列中的消息存储到会话中。

use jjok\Flasher\Factory;
use jjok\Flasher\Messages\Message;

// Start the session
session_start();

$factory = new Factory();

// Get a new message queue, loading any previously queued messages from the session.
$message_queue = $factory->createSessionFlasher($_SESSION, 'queued_messages');

// Add a message.
$message_queue->enqueue(new Message('This is a message that was stored in the session.'));

// The page is reloaded, or redirects before messages are shown.
unset($message_queue);

$message_queue = $factory->createSessionFlasher($_SESSION, 'queued_messages');

// Dequeue each message
while(!$message_queue->isEmpty()) {
	echo $message_queue->dequeue();
}

// "This is a message that was stored in the session."

运行测试

php -r readfile("https://phar.phpunit.de/phpunit.phar"); > phpunit.phar
php phpunit.phar

待办事项

  • 添加 MessageFactory 类。

版权所有 (c) 2014 Jonathan Jefferies