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
它是一个codeigniter系统代码。我不明白如何修复它。
- sandeep himasha 2021-12-29
似乎codeigniter3与php8不兼容。我把它降级到了php7。
- sandeep himasha 2021-12-29
2 个回答
#1楼
已采纳
得票数 41
对于其他遇到这个错误的人,我在升级到PHP8.1后也遇到了这个错误。我能找到的唯一方法是在/system/libraries/Session/drivers/Session_files_driver.php
中的open
、read
、write
、close
、destroy
和gc
函数前加上#[\ReturnTypeWillChange]
来解决。比如说。
#[\ReturnTypeWillChange]
public function open($save_path, $name)
{
...
这对我来说是有效的,但在这些变化之后,在刷新页面后,会话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)
{
...
}
这对我来说,在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/
的解决方案,这里就是解决方案。谢谢,@JoyalGeorge
- Tayyab Hayat 2022-05-11