4 private static $objectStore = array();
6 public static function get()
9 throw new Exception('Factory::get called without class name');
11 $args = func_get_args();
12 $class = array_shift($args);
14 $obj = self::getInstance($class, $args);
17 $reflection = new ReflectionClass($class);
18 $obj = $reflection->newInstanceArgs($args);
19 self::$objectStore[$class][] = array('args' => $args, 'object' => $obj);
25 private static function getInstance($class, $args)
27 if (!array_key_exists($class, self::$objectStore)) return false;
29 foreach (self::$objectStore[$class] as $item) {
30 if ($item['args'] == $args)
31 return $item['object'];