<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* ------------------------------------------------------------------------
* Editor : PhpStorm 2019.3
* Date : 6/23/2019
* Time : 6:03 AM
* Authors : Raymond L King Sr.
* ------------------------------------------------------------------------
*
* Class Name
*
* @project fxstarter
* @author Raymond L King Sr.
* @link http://www.procoversfx.com
* @copyright Copyright (c) 2009 - 2019 Pro Covers FX, LLC.
* @license http://www.procoversfx.com/license
* ------------------------------------------------------------------------
*/
/**
* SETUP:
*
* place this library in ./application/libraries/Registry.php
*
* Autoload: ./application/libraries/Registry.php
* Autoload: ./application/helpers/registry_helper.php
*
* TESTING:
*
* In your Controller index method add.
*
* regSet('1', 'test1', 'test1');
* regSet('1', 'test2', 'test1');
* regSet('1', 'test3', 'test1');
*
* regSet('2', 'test4', 'test2');
* regSet('2', 'test5', 'test2');
* regSet('2', 'test6', 'test2');
*
* $result = regGet('1', 'test3');
* $result1 = regGet_index('2');
* $exist = regExists('2', 'test1');
*
* $result2 = regDelete('1', 'test3');
*
* // Remove the remarks // to reset and clear out the reg array.
* // regClear();
*
* DEBUG:
*
* var_dump($this->registry->debugRegistry());
*
* $this->registry->var_debug($this->registry->debugRegistry(), $result, $result1, $exist, $result2);
*
* USAGE:
*
* set: $this->registry->set('1', 'test1', 'test1');
* get: $result = $this->registry->get('1', 'test3');
* getIndex $result = $this->registry->getIndex('2');
* exists: $result = $this->registry->exists('2', 'test1');
* clear: $this->registry->clear();
* delete: $result2 = $this->registry->delete('1', 'test3');
*
*/
class Registry {
/**
* Class variables - public, private, protected and static.
* --------------------------------------------------------------------
*/
/**
* @var
* CI Super Object.
*/
private $_ci;
/**
* @var
* array ( $key => $val );
*/
protected static $reg = array();
/**
* __construct ()
* --------------------------------------------------------------------
*
* Constructor PHP 5+
*
* NOTE: Not needed if not setting values or extending a Class.
*
*/
public function __construct()
{
$this->_ci =& get_instance();
log_message('debug', "Registry Class Initialized");
}
/**
* set ()
* --------------------------------------------------------------------
*
* Set a registry key and value pair.
*
* @param $key
* @param $val
*/
public function set($key, $val)
{
if ( ! isset(self::$reg[$key]))
{
self::$reg[$key] = $val;
}
}
/**
* get ()
* --------------------------------------------------------------------
*
* Gets a registry and value.
*
* @param $key
* @return bool
*/
public function get($key)
{
if (isset(self::$reg[$key]))
{
return self::$reg[$key];
}
return false;
}
/**
* exists ()
* --------------------------------------------------------------------
*
* Checks to see if a registry exists.
*
* @param $key
* @return bool
*/
public function exists($key)
{
return isset(self::$reg[$key]);
}
/**
* clear ()
* --------------------------------------------------------------------
*
* Clears out and resets the registry arrays.
*/
public function clear()
{
self::$reg = array();
}
/**
* delete ()
* --------------------------------------------------------------------
*
* Deletes a registry key.
*
* @param $key
* @return bool
*/
public function delete($key)
{
if (isset(self::$reg[$key]))
{
unset(self::$reg[$key]);
return true;
}
return false;
}
/**
* debugRegistry ()
* --------------------------------------------------------------------
*
* Debug the reg arrays.
*
* @return array
*/
public function debugRegistry()
{
return self::$reg;
}
} // End of Registry Class.
/**
* ------------------------------------------------------------------------
* Filename: Registry.php
* Location: ./application/libraries/Registry.php
* ------------------------------------------------------------------------
*/