Пример #1
0
 /**
  *	Return class instance
  *	@return static
  **/
 static function instance()
 {
     if (!Registry::exists($class = get_called_class())) {
         $ref = new Reflectionclass($class);
         $args = func_get_args();
         Registry::set($class, $args ? $ref->newinstanceargs($args) : new $class());
     }
     return Registry::get($class);
 }
Пример #2
0
 /**
  * Returns a class instance
  **/
 static function instance()
 {
     $storage = new \Core\Storage();
     $classes = $storage->get('CORE.instantiable') ?: [];
     if (!isset($classes[$class = get_called_class()])) {
         $ref = new \Reflectionclass($class);
         $args = func_get_args();
         $classes[$class] = $args ? $ref->newinstanceargs($args) : new $class();
         $storage->set('CORE.instantiable', $classes);
     }
     return $classes[$class] ?: null;
 }
Пример #3
0
 protected function model($name)
 {
     if (isset(self::$_models[$name])) {
         return self::$_models[$name];
     }
     $class = APP_NAMESPACE . '\\Models\\' . $name;
     $ref = new \Reflectionclass($class);
     $args = array_slice(func_get_args(), 1);
     self::$_models[$name] = $args ? $ref->newinstanceargs($args) : new $class();
     return self::$_models[$name];
 }