Message: Return type of CI_Session_files_driver::open($save_path, $name) should either be compatible with

回答 2 浏览 4.2万 2021-12-28

我在安装了新的xampp版本(php8)后出现了这个错误,并克隆了我的codeigniter项目。

Message: Return type of CI_Session_files_driver::open($save_path, $name)
should either be compatible with SessionHandlerInterface::open(string $path, string $name):
bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

文件名是:drivers/Session_files_driver.php

行号:132

sandeep himasha 提问于2021-12-28
用同样的方法解决这个问题。stackoverflow.com/questions/42867615/…vee 2021-12-28
它是一个codeigniter系统代码。我不明白如何修复它。sandeep himasha 2021-12-29
在这种情况下,也许可以将Codeigniter更新到最新版本,但如果问题仍然存在,请报告一个bugvee 2021-12-29
似乎codeigniter3与php8不兼容。我把它降级到了php7。sandeep himasha 2021-12-29
2 个回答
#1楼 已采纳
得票数 41

对于其他遇到这个错误的人,我在升级到PHP8.1后也遇到了这个错误。我能找到的唯一方法是在/system/libraries/Session/drivers/Session_files_driver.php中的openreadwriteclosedestroygc函数前加上#[\ReturnTypeWillChange]来解决。比如说。

#[\ReturnTypeWillChange]
public function open($save_path, $name)
{
...
b4tch 提问于2022-01-07
b4tch 修改于2022-02-16
这对我来说是有效的,但在这些变化之后,在刷新页面后,会话flash没有被破坏掉。MOHD FARAZ 2022-03-22
似乎在CI 3.1.13中得到了修复 --> composer update为我修复了它。Dario Zadro 2022-04-03
这些都是即将到来的坏问题,会造成许多麻烦,因为要用CI3将7切换到8。heySushil 2022-08-22
#2楼
得票数 21

我在重新安装XAMPP服务器后遇到这个错误。我已经通过添加以下内容解决了这个问题

#[\ReturnTypeWillChange]

Session_files_driver.php file中的所有方法(open, read, write, close, destroy and gc)。该文件可以在项目文件夹system/libaries/Session/drivers/Session_files_driver.php中找到。

#[\ReturnTypeWillChange]
public function open($save_path, $name)
{
   ...
}

#[\ReturnTypeWillChange]
public function read($session_id)
{
  ...
}

#[\ReturnTypeWillChange]
public function write($session_id, $session_data)
{
  ...
}

#[\ReturnTypeWillChange]
public function close()
{
  ...
}

#[\ReturnTypeWillChange]
public function destroy($session_id)
{
  ...
}

#[\ReturnTypeWillChange]
public function gc($maxlifetime)
{
  ...
}
Joyal George 提问于2022-01-20
这对我来说,在php v 8.*中工作得很好。w.Daya 2022-01-27
这对我来说是有效的,但在这些改变之后,在刷新页面后,会话flash没有被破坏掉。MOHD FARAZ 2022-03-22
显示错误消息后销毁会话闪存。Joyal George 2022-03-23
任何人都在寻找Sessions files not automatically deleting from /var/lib/php/sessions/的解决方案,这里就是解决方案。谢谢,@JoyalGeorgeTayyab Hayat 2022-05-11