首页 » 收集 » 正文内容
PHP MVC框架开发之工厂注册类
寻梦xunm| 736| 收集
3年前
超过1095天 温馨提示
本文最后更新于2021年11月22日,已超过1095天没有更新,若内容或图片失效,请留言反馈。
该类作用于实例化类的时候只会实例化一次(理论是这样,实际还没有测试)
<?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)');
0 赞 or 打赏
喜欢就打赏一点
微信 支付宝
20240430140454171445709417079.png
20240430140454171445709417079.png
隐私
Q Q:1340326824
邮箱:vipshiyi@qq.com
QQ群:422720328

我的音乐