TP3.2的删除缓存与引入第三方库的问题(二)

时间:2023-02-01 08:56:51

基本每天都会遇到新的问题,不记录下来是在是有点亏。以下内容也是在做项目的时候碰到,然后百度搜索答案,记到记事本上的,在此分享给大家。

一、关于删除TP框架的缓存问题

TP的缓存不仅仅局限于runtime里面的缓存文件,首先需要定义一个函数:

public function cache_clear() {
        $this->deldir(TEMP_PATH);
    }
    function deldir($dir) {
        $dh = opendir($dir);
        while ($file = readdir($dh)) {
            if ($file != "." && $file != "..") {
                $fullpath = $dir . "/" . $file;
                if (!is_dir($fullpath)) {
                    unlink($fullpath);
                } else {
                    deldir($fullpath);
                }
            }
        }
    }

这个更多的是删除缓存的文件,直接删除文件夹如果是要删除runtime文件里面的缓存的话,需定义常量,一键删除:

define('RUNTIME','./Application/Runtime/');直接带入变量。

二、关于TP在Vendor中引入第三方库已经使用问题:

我碰到的问题:在生成二维码的时候,直接vendor引进来,然后实例化对象,结果报错了,

提示找不到该方法,,,最后百度才发现:

解释:TP框架3.2.3之前的,如果要引入Vendor之中的第三方类库,除了例如:
vendor("phpqrcode.phpqrcode");  之外,在实例化类的时候需要加上反斜杠
$QRcode = new \QRcode();//实例化,注意加\
解释:第三方类库没有使用命名空间,导致引入失败。tp中对于没有命名空间的类,
 实例化的时候要使用 new \ClassName();

加“\”,加“\”,加“\”,重要的事情说三遍。