'error', self::WARNING => 'warning', self::SUCCESS => 'success', self::INFO => 'info', ]; public $oldMessages = Array(); public $newMessages = Array(); public $_flashes = Array(); //SINGLETON============================================== private function __construct(){ if(session_id() == '' || !isset($_SESSION)) { session_start(); } if( isset($_SESSION['flashes']) ){ $this->oldMessages = $_SESSION['flashes']; } unset( $_SESSION[self::SESSION_NAME] ); } private static function newObj(){ if (!isset( self::$_instance )) { self::$_instance = new Flash(); } return self::$_instance; } public static function getInstance(){ if (!isset(self::$_instance)) { return self::newObj(); } return self::$_instance; } //======================================================= public function merge(){ $this->_flashes = array_merge_recursive($this->newMessages, $this->oldMessages); } public function loadToSession(){ $_SESSION[self::SESSION_NAME] = $this->newMessages; } /* * * @ctag Flash:addMessage(); * @ctag Flash:addMessage(Flash::FLASH_INFO, ''); * @ctag Flash:addMessage(Flash::FLASH_SUCCESS, ''); * @ctag Flash:addMessage(Flash::FLASH_WARNING, ''); * @ctag Flash:addMessage(Flash::FLASH_ERROR, ''); * */ public static function addMessage($type = self::defaultType, $message){ $instance = self::getInstance(); $instance->newMessages[$type] = $message; $instance->loadToSession(); } /** * * @ctag Flash::addInfo(''); * */ public static function addInfo($message){ $instance = self::getInstance(); $instance->newMessages[self::INFO] = $message; $instance->loadToSession(); } /** * * @ctag Flash::addError(''); * */ public static function addError($message){ $instance = self::getInstance(); $instance->newMessages[self::ERROR] = $message; $instance->loadToSession(); } /** * * @ctag Flash::getErrors(); * */ public static function getErrors(){ if(!self::hasErrors()){ return Array(); } return self::getInstance()->_flashes[self::ERROR]; } /** * * @ctag Flash::addInfos(); * */ public static function getInfos(){ if(!self::hasInfo()){ return Array(); } return self::getInstance()->_flashes[self::INFO]; } /** * * @ctag Flash::addErrors(); * */ public static function hasErrors(){ $instance = self::getInstance(); $instance->merge(); if( array_key_exists(self::ERROR, $instance->_flashes ) ){ return true; }else{ return false; } } /** * * @ctag Flash::hasInfo(); * */ public static function hasInfo(){ $instance = self::getInstance(); $instance->merge(); if( array_key_exists(self::INFO, $instance->_flashes ) ){ return true; }else{ return false; } } }