• PHP
Lim_Registry – PHP Lazy Registry Class

Lim_Registry is a PHP Registry class met ondersteuning voor “lazy loading”. In dat geval wordt er pas een instantie van een class aangemaakt, wanneer deze uit het register wordt opgehaald. Hetzelfde geldt eventueel voor een callback functie.

Hoe werkt het?

// set
Registry::set('site_title', 'My Site Title');
Registry::setLazyClass('db', 'DBConnection');
Registry::setLazyCallback('avg', 'getAverage');

// get
$value = Registry::get('site_title');

// is loaded (and not in lazy state)
$loaded = Registry::isLoaded('db');

// exists?
$exists = Registry::has('site_title');

// remove
Registry::remove('site_title');

Voorbeeld “by reference”

// set by ref
$arr = array('One', 'Two', 'Three');
Registry::setByRef('numbers', $arr);

// get by ref
$ref = & Registry::getByRef('numbers');

arr[0] = 'Ten'; // -> $ref[0] === 'Ten'

API

Static methods

  • Registry::getInstance()
  • Registry::defaultOverwrite( $overwrite = null )
  • Registry::set( $key, $value, $overwrite = null )
  • Registry::setByRef( $key, & $value )
  • Registry::setLazyClass( $key, $class, $args = array(), $overwrite = null )
  • Registry::setLazyCallback( $key, $callback, $args = array(), $overwrite = null )
  • Registry::get( $key, $reload = false )
  • Registry::getByRef( $key )
  • Registry::has( $key )
  • Registry::isLoaded( $key )
  • Registry::remove( $key )
  • Registry::clear()

Downloaden

Je kan de laatste versie downloaden van Github.

Licentie

Code valt onder de MIT licentie.

Gerelateerde artikelen

Fork me on GitHub

Reacties (1)

  • Erg interessante post! Heb hier zeker wat aan gehad en zal het ongetwijfeld gaan gebruiken in het vervolg! :)

Stuur je reactie

  • RSS
  • LinkedIn
  • Twitter