常用的一个小工具类吧,为已经使用过的PHP类建立一个实例,也可以防止代码重复加载。
class NSingleton
{
static $instance;
static public function get($className, $autoInit = true) {
if (!$className || !is_string($className)) {
require_once ('Empty.php');
return new NEmpty(); // or return false;
}
self::set($className, $autoInit);
return self::$instance;
}
static protected function set($className, $autoInit = true) {
if (isset(self::$instance[$key]) && self::$instance[$key] != false) {
return;
}
if (!class_exists($className)) {
try {
$classFile = sprintf('%s.php',$className);
require_once( substr($classFile, 1) ); //remove 'N'
} catch (Exception $e) {
trigger_error('class file not exists');
self::$instance[$key] = false;
}
}
$instance = new $className;
if ($auoInit && method_exists($instance, 'init')) {
$instance->init();
}
self::$instance[$key] = $instance;
}
}
代码写的其实没什么,主要是简化一些操作和代码的加载。。。(用了这个方法加载类,很有可能无法在IDE被识别)

评论 (2)