cakePHP会话组件未初始化?

时间:2017-09-21 16:26:25

标签: session cakephp initialization

在AuthComponent.php中我有这段代码:

App::uses('Component', 'Controller');
App::uses('Router', 'Routing');
App::uses('Security', 'Utility');
App::uses('Debugger', 'Utility');
App::uses('CakeSession', 'Model/Datasource');
App::uses('BaseAuthorize', 'Controller/Component/Auth');
App::uses('BaseAuthenticate', 'Controller/Component/Auth');

class AuthComponent extends Component {
// ...
public $components = array('Session', 'RequestHandler');
// ...
public function login($user = null) {
        $this->_setDefaults();

        if (empty($user)) {
            $user = $this->identify($this->request, $this->response);
        }

        if ($user) {
            $this->Session->renew();    // fails here (Session==null)
            $this->Session->write(self::$sessionKey, $user);
        }
        return $this->loggedIn();
    }
// ...
}

当它尝试执行续订时,由于$ this-> Session为空而失败并出现PHP致命错误。这个组件的初始化是自动的还是我在某处丢失了代码?我应该注意,此代码以前一直没有已知问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题解决了,有点儿。基本上,代码中任何地方的任何语法错误都可能导致这种情况发生。甚至是与失败的代码完全无关的逻辑错误。 (真的喜欢这里的蛋糕)。所以,在程序另一部分的另一个文件的某个地方,完全是一个'从单个变量名称中删除,这导致另一个蛋糕组件中的Session组件无法初始化。我也不相信,但我亲眼看到了它。