PHP MVC框架开发之工厂注册类

PHP代码
323 0
该类作用于实例化类的时候只会实例化一次(理论是这样,实际还没有测试)
<?php
namespace xm;
/*
 工厂注册类
 作用于类的实例化出来防止重复实例化
*/
class gc{

//声明一个受保护的静态变量存储对象信息
protected static $object;

//创建一个静态方法
//$gc 要实例化的对象信息
//$del true为创建实例化,false为删除数组中的对象信息
public static function run($gc="",$del=true){

//转义字符
$gc =htmlspecialchars($gc);

if($del == true){

//判断变量是否为空值
if (!empty($gc)){

//判断是否为空值
if (!self::get($gc)){;

//实例化一个类
$duix = new $gc();

//通过该方法添加上面实例化出来的对象到一个数组中进行存储
self::set($gc,$duix);

//通过该方法可以从数组中获取到相关对象的信息
return self::get($gc);

}else{

//通过该方法可以从数组中获取到相关对象的信息
return self::get($gc);

}

}else{

echo exit("工厂注册类的run方法的参数不要为空值");

}

}else{

self::del($gc);

}

}

//设置对象到一个数组中
public static function set($gc,$object){

self::$object[$gc] = $object;

}

//获取数组中的对象信息
public static function get($gc){

return self::$object[$gc];

}

//删除一个对象信息
public static function del($gc){

unset(self::$object[$gc]);

}

}

使用方法(注意:一般和自动加载类用)
xm\gc::run('这里填写需要实例化的类(例如:xm\url)');
最后更新 2021-11-22
评论 ( 0 )
OωO
隐私评论