【发布时间】:2013-03-02 12:54:53
【问题描述】:
我在 Codeigniter 中有一个自定义库,可以在销毁时创建会话 cookie。
public function __destruct()
{
$this->CI->session->set_userdata('user', $this->user);
}
这失败了,因为在类被破坏之前视图已经发送了标题。
我知道我可以在输出视图之前手动破坏库。我的问题是,是否可以在发送任何标头之前让我的库自动销毁?
是否有我可以使用的钩子或 codeigniter 中的某些功能会破坏所有库/模型?
编辑
经过反复试验,我发现我无法在需要的时候手动销毁库。我尝试了几种方法,但该库仍在范围内且无法取消设置。
【问题讨论】:
-
您是否有理由希望在
__destruct()上发生这种情况? -
@complex857 是的。我的应用程序从 CI 会话中设置和获取信息,并且由于我将会话数据存储在数据库中,因此我只想在应用程序结束时提交更改。我不想依靠控制器记住存储会话,而是想在清理时存储它。
-
你不能把它挂在其中一个钩子上吗?喜欢
post_controller,还是post_controller_constructor?如果您也将渲染移到 post_controller 挂钩中,则可能会避免您的标头发送问题。据我所知,CI 并没有真正做明确的拆解,只是在一切完成后让 php 来处理。
标签: codeigniter destructor php