PHP7.1 和 Laravel 5.3:函数 mcrypt_get_iv_size() 已弃用

新手上路,请多包涵

我的所有项目都使用 Laravel 5.0。昨天,我将我的 PHP 版本从 7.0.x 更新到了 7.1.0 版本。更新后,我尝试打开我的 Laravel 项目并在下面看到此消息:

 ErrorException in Encrypter.php line 303:
Function mcrypt_get_iv_size() is deprecated

in Encrypter.php line 303
at HandleExceptions->handleError('8192', 'Function mcrypt_get_iv_size() is deprecated', 'C:\wamp64\www\project1\vendor\laravel\framework\src\Illuminate\Encryption\Encrypter.php', '303', array()) in Encrypter.php line 303

我可以知道我该如何解决这个问题吗?使用 Laravel 5.3 能解决问题吗?我不想将我的 Laravel 更新到 5.3,因为它是一个巨大的项目,并且需要很长时间才能更新。这两个版本差别太大了。很多代码需要修改。

有没有更简单的方法来解决这个问题?

原文由 nodeffect 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 908
2 个回答

发生此错误是因为您的 config/app.php 文件中的密码可能不是 AES-256-CBC 作为密码,这取决于 mcrypt 扩展。也许您正在使用 MCRYPT_RIJNDAEL_256MCRYPT_RIJNDAEL_128

如果没有全面升级 Laravel,你可以做的最好的事情是安装 旧版加密 器并使用它来更新所有加密数据以使用自 Laravel 5.1 以来一直是默认密码的 AES-256-CBC 密码,我相信。一旦你这样做了,你应该能够在你的 Laravel 应用程序中使用 PHP 7.1。

原文由 Benjamin Kohl 发布,翻译遵循 CC BY-SA 3.0 许可协议

将此添加到 config/app.php 的开头:

error_reporting(E_ALL ^ E_DEPRECATED);

来源: https ://stackoverflow.com/a/42515505/225790

原文由 Debiprasad 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题