1 <?php
defined('IN_CMS') or die('No direct access allowed.');
5 private static $registry = array();
6 private static $instances = array();
8 public static function register($name, $resolver, $singleton = false) {
9 static::$registry[$name] = array('resolver' => $resolver, 'singleton' => $singleton);
12 public static function instance($name, $instance) {
13 static::$instances[$name] = $instance;
16 public static function resolve($name) {
17 if(isset(static::$instances[$name])) {
18 return static::$instances[$name];
21 if(isset(static::$registry[$name])) {
22 $object = call_user_func(static::$registry[$name]['resolver']);
24 if(isset(static::$registry[$name]['singleton']) and static::$registry[$name]['singleton']) {
25 static::$instances[$name] = $object;