<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* -----------------------------------------------------------------------
* Editor : PhpStorm 2018.1
* Date : 01/23/2018
* Time : 6:03 AM
* Authors : Raymond L King Sr.
* -----------------------------------------------------------------------
*
* Class Name
*
* @project starter
* @author Raymond L King Sr.
* @link http://www.procoversfx.com
* @copyright Copyright (c) 2009 - 2018 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');
* get_index $result = $this->registry->get_index('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 ( $index => array ( $key => $val ));
*/
protected static $reg = array(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 index and key, value pair.
*
* @param $index
* @param $key
* @param $val
*/
public function set($index, $key, $val)
{
if ( ! isset(self::$reg[$index][$key]))
{
self::$reg[$index][$key] = $val;
}
}
// -------------------------------------------------------------------
/**
* get ()
* -------------------------------------------------------------------
*
* Gets a registry and value.
*
* @param $index
* @param $key
* @return bool
*/
public function get($index, $key)
{
if (isset(self::$reg[$index][$key]))
{
return self::$reg[$index][$key];
}
return false;
}
// -------------------------------------------------------------------
/**
* getIndex ()
* -------------------------------------------------------------------
*
* Gets the array for this index.
*
* @param null $index
* @return bool|mixed
*/
public function getIndex($index = null)
{
if ($index != null)
{
return self::$reg[$index];
}
return false;
}
// -------------------------------------------------------------------
/**
* exists ()
* -------------------------------------------------------------------
*
* Checks to see if a registry exists.
*
* @param $index
* @param $key
* @return bool
*/
public function exists($index, $key)
{
return isset(self::$reg[$index][$key]);
}
// -------------------------------------------------------------------
/**
* clear ()
* -------------------------------------------------------------------
*
* Clears out and resets the registry arrays.
*/
public function clear()
{
self::$reg = array(array());
}
// -------------------------------------------------------------------
/**
* delete ()
* -------------------------------------------------------------------
*
* Deletes a registry index key.
*
* @param $index
* @param $key
* @return bool
*/
public function delete($index, $key)
{
if (isset(self::$reg[$index][$key]))
{
unset(self::$reg[$index][$key]);
return true;
}
return false;
}
// -------------------------------------------------------------------
/**
* debugRegistry ()
* -------------------------------------------------------------------
*
* Debug the reg arrays.
*
* @access public
* @return array
*/
public function debugRegistry()
{
return self::$reg;
}
} // End of Registry Class.
/**
* -----------------------------------------------------------------------
* Filename: Registry.php
* Location: ./application/libraries/Registry.php
* -----------------------------------------------------------------------
*/