欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

很奇怪,php 引入了phar,但是报错,说PredisClient类找不到?

程序员文章站 2022-06-02 12:09:30
...
redis) {
            $cfg = [
                'scheme' => 'tcp',
                'host' => '127.0.0.1',
                'port' =>  6379
            ];
            $this->redis = new \Predis\Client($cfg);
        }
    }

    /**
     * Close the session
     * @since 5.4.0
     */
    public function close()
    {
        $this->redis->quit();
        return true;
    }

    /**
     * Destroy a session
     * @since 5.4.0
     */
    public function destroy($session_id)
    {
        $this->connect();
        return $this->redis->del($session_id);
    }

    /**
     * Cleanup old sessions
     * @since 5.4.0
     */
    public function gc($maxlifetime)
    {
        return true;
    }

    /**
     * Initialize session
     * @since 5.4.0
     */
    public function open($save_path, $session_id)
    {
        return true;
    }

    /**
     * Read session data
     * @since 5.4.0
     */
    public function read($session_id)
    {
        $this->connect();
        $data = $this->redis->get($session_id);
        return $data;
    }

    /**
     * Write session data
     * @since 5.4.0
     */
    public function write($session_id, $session_data)
    {
        $this->connect();
        $expire  =  configure('Ymf.Account.expire');
        if(is_int($expire) && $expire > 0) {
            $result = $this->redis->setex($session_id, $expire, $session_data);
            $re = $result ? 'true' : 'false';
        }else{
            $result = $this->redis->set($session_id, $session_data);
            $re = $result ? 'true' : 'false';
        }
        var_dump($result);
        return $re;
    }
}


session_set_save_handler(new MySession());

session_start();

$_SESSION['name'] = 43;

这是目录
很奇怪,php 引入了phar,但是报错,说PredisClient类找不到?

回复内容:

redis) {
            $cfg = [
                'scheme' => 'tcp',
                'host' => '127.0.0.1',
                'port' =>  6379
            ];
            $this->redis = new \Predis\Client($cfg);
        }
    }

    /**
     * Close the session
     * @since 5.4.0
     */
    public function close()
    {
        $this->redis->quit();
        return true;
    }

    /**
     * Destroy a session
     * @since 5.4.0
     */
    public function destroy($session_id)
    {
        $this->connect();
        return $this->redis->del($session_id);
    }

    /**
     * Cleanup old sessions
     * @since 5.4.0
     */
    public function gc($maxlifetime)
    {
        return true;
    }

    /**
     * Initialize session
     * @since 5.4.0
     */
    public function open($save_path, $session_id)
    {
        return true;
    }

    /**
     * Read session data
     * @since 5.4.0
     */
    public function read($session_id)
    {
        $this->connect();
        $data = $this->redis->get($session_id);
        return $data;
    }

    /**
     * Write session data
     * @since 5.4.0
     */
    public function write($session_id, $session_data)
    {
        $this->connect();
        $expire  =  configure('Ymf.Account.expire');
        if(is_int($expire) && $expire > 0) {
            $result = $this->redis->setex($session_id, $expire, $session_data);
            $re = $result ? 'true' : 'false';
        }else{
            $result = $this->redis->set($session_id, $session_data);
            $re = $result ? 'true' : 'false';
        }
        var_dump($result);
        return $re;
    }
}


session_set_save_handler(new MySession());

session_start();

$_SESSION['name'] = 43;

这是目录
很奇怪,php 引入了phar,但是报错,说PredisClient类找不到?

use 是使用命名空间的意思

use Predis\Client;

使用Predis空间下的 client 类

use \Predis\Client;

或者即然下面使用时用的完整命名空间,直接把use去掉

相关标签: php