<?php
final class Flash {
const FLASHES_KEY = '_flashes';
private static $flashes = null;
private function __construct() {
}
public static function hasFlashes() {
self::initFlashes();
return count(self::$flashes) > 0;
}
public static function addFlash($message) {
if (!strlen(trim($message))) {
throw new Exception('Cannot insert empty flash message.');
}
self::initFlashes();
self::$flashes[] = $message;
}
public static function getFlashes() {
self::initFlashes();
$copy = self::$flashes;
self::$flashes = array();
return $copy;
}
private static function initFlashes() {
if (self::$flashes !== null) {
return;
}
if (!array_key_exists(self::FLASHES_KEY, $_SESSION)) {
$_SESSION[self::FLASHES_KEY] = array();
}
self::$flashes = &$_SESSION[self::FLASHES_KEY];
}
}
?>