如何在Laravel Valet中关闭PHP废弃警报?
解决Laravel Tinker中Doctrine Inflector弃用错误的几种方法
我之前也碰到过一模一样的问题,给你几个亲测有效的解决方案:
1. 调整Laravel项目的错误报告配置
全局php.ini的设置经常会被Laravel自身的配置覆盖,你可以直接在项目里单独配置:
打开config/app.php,找到(如果没有就添加)error_reporting配置项,设置成:
'error_reporting' => E_ALL & ~E_DEPRECATED,
这样就能在项目层面直接屏蔽所有弃用警告,不仅限于tinker。
2. 启动Tinker时临时屏蔽错误
如果不想改动项目配置,可以在启动tinker的时候直接传递PHP参数:
php -d error_reporting="E_ALL & ~E_DEPRECATED" artisan tinker
这个方法是临时生效的,每次启动都要加,但好处是不会影响项目的其他环境。
3. 确认Valet使用的PHP配置文件
Valet有时候会使用独立的PHP版本,你修改的可能不是它正在用的php.ini文件:
首先查看Valet当前使用的PHP版本:
valet php -v
然后找到对应版本的php.ini路径:
valet php --ini
编辑这个路径下的php.ini,把error_reporting改成E_ALL & ~E_DEPRECATED,之后重启Valet:
valet restart
这次修改就会生效了。
4. 升级依赖彻底解决问题
这个错误本质是因为某些包还在使用Doctrine Inflector的旧API,你可以尝试升级相关依赖:
先查看当前Doctrine Inflector的版本:
composer show doctrine/inflector
如果你的Laravel版本比较旧,建议升级Laravel到支持新Inflector API的版本;或者检查哪个第三方包在调用旧方法,运行:
composer why doctrine/inflector
找到依赖它的包,看看有没有更新版本可以兼容新的Inflector。
内容的提问来源于stack exchange,提问作者Stark
相关产品推荐
相关产品推荐

