抽离 ThinkPHP 实例化模型 M 方法的可行性


在一个小项目中,要使用到数据库的 CURD 操作,一直觉得 ThinkPHP3 的模型操作类使用非常方便,但又不想把 ThinkPHP 的整套库搬过来,所以才有了把 ThinkPHP 模型库类抽离出来使用的想法

使用到的文件包含如下:

ThinkPHP\Library\Think\Db.class.php
ThinkPHP\Library\Think\Model.class.php
ThinkPHP\Library\Think\Log.class.php
ThinkPHP\Library\Think\Exception.class.php
ThinkPHP\Library\Think\Db\Driver.class.php
ThinkPHP\Library\Think\Db\Lite.class.php
ThinkPHP\Library\Think\Db\Driver\Mysql.class.php
ThinkPHP\Library\Think\Db\Driver\Sqlite.class.php
ThinkPHP\Mode\Lite\functions.php

修改文件

将文件的命名空间全部改为 namespace Think;

修改 Driver.class.php 文件的 parseKey 函数参数与 Mysql.class.php 文件的一致

protected function parseKey($key, $strict = false){...}

修改 Db.class.php 文件 getInstance 函数片段

$class = !empty($options['lite']) ? 'Think\\Lite' : 'Think\\' . ucwords(strtolower($options['type']));

经过测试,读取数据成功!瞬间心情大爽 😁




评论

还没有任何评论,你来说两句吧!

发表评论