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

2个月前 PHP代码 123°C

这篇文章最后更新于11-22 14:14前,您需要注意相关的内容是否还可用,如有疑问请联系作者!

该类作用于实例化类的时候只会实例化一次(理论是这样,实际还没有测试)

<?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)');
版权说明:本站所提供的文章、图片等内容均为用户发布或互联网整理而来,仅供学习参考,如有侵犯您的版权,请联系我们客服人员删除。
本文链接:https://huue.cc/index.php/archives/1697.html
最后编辑: 21年11月22日

网友评论

4天前

大佬啥时候参与max/routing的开发啊,把功能加到routing中 https://github.com/topyao/max-routing

6天前

11111

1个月前

1111

1个月前

1

2个月前

e21e12e12

2个月前

菊花残,满腚伤。ଲ