Welcome Guest, Not a member yet? Register   Sign In
Codeigniter 3 blog application: overwriting default “static” variable with a “dynamic
#2

Maybe this will help you get an idea on how to do it.

./application/libraries/Registry.php
PHP Code:
<?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
 * -----------------------------------------------------------------------
 */ 

./application/helpers/registry_helper.php
PHP Code:
<?php
defined
('BASEPATH') OR exit('No direct script access allowed');

/**
 * -----------------------------------------------------------------------
 * Editor   : PhpStorm 2018.1
 * Date     : 01/23/2018
 * Time     : 6:27 AM
 * Authors  : Raymond L King Sr.
 * -----------------------------------------------------------------------
 * 
 * Class        registry_helper
 * 
 * @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
 * -----------------------------------------------------------------------
 */

// -----------------------------------------------------------------------

/**
 * regSet ()
 *
 * Sets a new property.
 *
 * Usage: regSet($index, $key, $val);
 */
if ( ! function_exists('regSet'))
{
    
/**
     * regSet ()
     * -------------------------------------------------------------------
     *
     * @param   string $index
     * @param   string $key
     * @param   string $val
     */
    
function regSet($index ''$key ''$val '')
    {
        
ci()->registry->set($index$key$val);
    }
}

// -----------------------------------------------------------------------

/**
 * regGet ()
 *
 * Gets a registry value.
 *
 * Usage: $result = regGet($index, $key);
 */
if ( ! function_exists('regGet'))
{
    
/**
     * regGet ()
     * -------------------------------------------------------------------
     *
     * @param   string $index
     * @param   string $key
     * @return  mixed
     */
    
function regGet($index ''$key '')
    {
        
$_ci =& get_instance();
        return 
$_ci->registry->get($index$key);
    }
}

// -----------------------------------------------------------------------

/**
 * regGetIndex ()
 *
 * Get a registry index.
 *
 * Usage: $result = regGetIndex($index);
 */
if ( ! function_exists('regGetIndex'))
{
    
/**
     * regGetIndex ()
     * -------------------------------------------------------------------
     *
     * @param   null $index
     * @return  mixed
     */
    
function regGetIndex($index null)
    {
        
$_ci =& get_instance();
        return 
$_ci->registry->getIndex($index);
    }
}

// -----------------------------------------------------------------------

/**
 * regExists ()
 *
 * Checks to see if a registry index and key exists.
 *
 * Usage: $result = regExists($index, $key);
 */
if ( ! function_exists('regExists'))
{
    
/**
     * regExists ()
     * -------------------------------------------------------------------
     *
     * @param   string $index
     * @param   string $key
     * @return  mixed
     */
    
function regExists($index ''$key '')
    {
        
$_ci =& get_instance();
        return 
$_ci->registry->exists($index$key);
    }
}

// -----------------------------------------------------------------------

/**
 * regDelete ()
 *
 * Deletes a registry index and key.
 *
 * Usage: $result = regDelete($index, $key);
 */
if ( ! function_exists('regDelete'))
{
    
/**
     * regDelete ()
     * -------------------------------------------------------------------
     *
     * @param   string $index
     * @param   string $key
     * @return  mixed
     */
    
function regDelete($index ''$key '')
    {
        
$_ci =& get_instance();
        return 
$_ci->registry->delete($index$key);
    }
}

// -----------------------------------------------------------------------

/**
 * regClear ()
 *
 * Resets and clears out the registry arrays.
 *
 * Usage: regClear();
 */
if ( ! function_exists('regClear'))
{
    
/**
     * reg_clear ()
     * -------------------------------------------------------------------
     *
     */
    
function regClear()
    {
        
$_ci =& get_instance();
        
$_ci->registry->clear();
    }
}

/**
 * -----------------------------------------------------------------------
 * Filename: registry_helper.php
 * Location: ./application/helpers/registry_helper.php
 * -----------------------------------------------------------------------
 */ 

That's just one way of doing it.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply


Messages In This Thread
RE: Codeigniter 3 blog application: overwriting default “static” variable with a “dynamic - by InsiteFX - 04-07-2018, 05:30 AM



Theme © iAndrew 2016 - Forum software by © MyBB