会话,PHP 不完整类

2021-12-21 00:00:00 php cakephp

我正在使用 cakePHP 2.x.目前正在做 Twitter OAuth,http://code.42dh.com/oauth/.>

I am using cakePHP 2.x . Currently doing about the twitter OAuth, http://code.42dh.com/oauth/.

function twitter_authentication()
{
            //assume above coding is all correct.   
    $this->Session->write('twitter_request_token', ($requestToken));
    $this->redirect('http://api.twitter.com/oauth/authenticate?force_login=true&oauth_token='.$requestToken->key); //I able to get $requestToken.
}

function twitter_login()
{
        $requestToken = $this->Session->read('twitter_request_token');
        $accessToken = $this->OAuthConsumer->getAccessToken('Twitter','https://api.twitter.com/oauth/access_token', $requestToken);

在 function_login() 中,我无法读取会话并以 PhP Incomplete Class 告终.如果我做 $this->Session->write('twitter_request_token', serialize($requestToken));$requestToken = $this->Session->read(unserialize('twitter_request_token'); 它可以工作,但我会在其他地方因使用序列化和反序列化会话而导致错误.

At function_login(), I failed to read session and ended up with PhP Incomplete Class. If I do $this->Session->write('twitter_request_token', serialize($requestToken)); and $requestToken = $this->Session->read(unserialize('twitter_request_token'); it will work, but I will ended up error at other places which caused by using serialize and unserialize session.

推荐答案

PHP 不完整的类"意味着 PHP 没有您正在加载的对象的类定义.

"PHP Incomplete Class" means PHP doesn't have a class definition for the object you're loading.

选项 A:在将对象写入会话时弄清楚该对象是什么类,并确保在加载对象之前加载类的定义.

Option A: figure out what class that object is when you write it into the session and ensure that class's definition is loaded before loading the object.

选项B:在写入之前将对象转换为stdClass 或数组,并在加载后转换回来.这可能比第一个选项更复杂.

Option B: convert the object to an stdClass or array before writing it, and convert back after loading. This might be more complex than the first option.

相关文章