手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:instance

常用类NSingleton

常用的一个小工具类吧,为已经使用过的PHP类建立一个实例,也可以防止代码重复加载。

PHP代码
  1. class NSingleton  
  2. {  
  3.     static $instance;  
  4.   
  5.     static public function get($className$autoInit = true) {  
  6.         if (!$className || !is_string($className)) {  
  7.             require_once ('Empty.php');  
  8.             return new NEmpty(); // or return false;  
  9.         }  
  10.         self::set($className$autoInit);  
  11.         return self::$instance;  
  12.     }  
  13.   
  14.     static protected function set($className$autoInit = true) {  
  15.         if (isset(self::$instance[$key]) && self::$instance[$key] != false) {  
  16.             return;  
  17.         }  
  18.         if (!class_exists($className)) {  
  19.             try {  
  20.                 $classFile = sprintf('%s.php',$className);  
  21.                 require_oncesubstr($classFile, 1) ); //remove 'N'  
  22.             } catch (Exception $e) {  
  23.                 trigger_error('class file not exists');  
  24.                 self::$instance[$key] = false;  
  25.             }  
  26.         }  
  27.         $instance = new $className;  
  28.         if ($auoInit && method_exists($instance'init')) {  
  29.             $instance->init();  
  30.         }  
  31.         self::$instance[$key] = $instance;  
  32.     }  
  33. }  
代码写的其实没什么,主要是简化一些操作和代码的加载。。。(用了这个方法加载类,很有可能无法在IDE被识别)

Tags: singleton, instance