Ejemplo n.º 1
0
 public function __get($name)
 {
     if (isset($this->_class_index[$name])) {
         $obj = registry::grab($this->_class_index[$name][0], $this->_class_index[$name][1]);
         if ($obj) {
             return $obj;
         }
     }
     if (!$this->_shorts_loaded) {
         $this->_shorts = static::__shortcuts();
         $this->_shorts_loaded = true;
     }
     $obj = false;
     if (isset($this->_shorts[$name])) {
         if (is_array($this->_shorts[$name])) {
             $obj = registry::register($this->_shorts[$name][0], $this->_shorts[$name][1]);
         } else {
             $obj = registry::register($this->_shorts[$name]);
         }
     } elseif (isset(registry::$aliases[$name])) {
         if (is_array(registry::$aliases[$name])) {
             $obj = registry::register(registry::$aliases[$name][0], registry::$aliases[$name][1]);
         } else {
             $obj = registry::register(registry::$aliases[$name]);
         }
     } elseif (registry::class_exists($name)) {
         $obj = registry::register($name);
     }
     if ($obj) {
         $this->_class_index[$name] = array(get_class($obj), $obj->class_hash);
         return $obj;
     }
     if ($const = registry::get_const($name)) {
         return $const;
     }
     return null;
 }