为MIOPHP建立统一资源管理类!

为MIOPHP建立统一资源管理类!

作者:LAMP小白  点击:1815  发布日期:2012-10-09 23:36:00  返回列表
这个功能在ANPHP已经实现,我还没看源码,先按照自己的思路实现后再看看我和ANPHP的不同

首先,介绍下这个类的使用了以下设计模式:单元素模式 工厂模式 迭代模式 中介者模式

简单的说 就是一个统一管理框架资源的类,比如我们new一个model
如 _model(mio_#39;usermio_#39;)
那么 $res=mio_#39;modelmio_#39;,$table=mio_#39;usermio_#39;,$type=mio_#39;mio_#39;会作为参数传入到资源管理类 Resource的getModel方法
然后 getModel 会根据
type(连接类型) 如 PDO MYSQLI MYSQL MONGO 和 tableName(表名) 这个就不说了
查找有无已存在的对象,如果有则直接返回 如果没有则实例化再返回

最后就是将已创建的各种资源统一保存在静态属性 objects中 方便下一次搜索
model(实例化的模型)
mem (从memcache获取的信息)
time (时间信息)
...

model的代码如下:
static public function getModel($tableName, $type = null)
        {
            $modelType = $type ? $type : mioCfg_dbType;
            $modelName = $modelType.'Model';
            if(isset($objects['model'][$modelType][$tableName]) mio_amp;mio_amp; $objects['model'][$modelType][$tableName] instanceof $modelName)
                return $objects['model'][$modelType][$tableName];
            $objects['model'][$modelType][$tableName] = new $modelName($tableName);
            return $objects['model'][$modelType][$tableName];
        }


使用就超简单了 new了3次其实都是同一个资源
public function index()
{
    dump(_model('user'));
    dump(_model('user'));
    dump(_model('user'));
}



上一篇:访问者模式 下一篇:快递查询API
0