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.
Versie 1.1: private omgezet naar protected, zodat ze in eventuele subklassen kunnen worden aangepast.
lregistry-1.1.zip | Bekijk de codeVersie 1.0: lregistry-1.0.zip | Bekijk de code
Licentie
Code valt onder de MIT licentie.
Gerelateerde artikelen



















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